Apple、コンフィグレーション生成用の静的型付き言語「Pkl」をオープンソースで公開、単一コードからJSONやYAML、XMLなどを生成
Appleは、さまざまなコンフィグレーションファイルを生成するための静的型付言語「Pkl」(発音はPickle=ピックル)をオープンソースで公開しました。
ソフトウェアやクラウドサービスなどの設定に用いるコンフィグレーションファイルはどんどん複雑になってきており、利用者が望む詳細な設定を、一般的なコンフィグレーションファイルのフォーマットとして使われているJSONやYAML、XMLプロパティリストなどの形式で正確に記述することは難しくなってきています。
Pklはそうしたコンフィグレーションを正確かつ分かりやすく記述するために開発された、特定目的用のプログラミング言語だと説明されています。
Configuration-as-Codeを実現するための豊富な型やバリデーション機能、VSCodeやIntelliJ、NeoVimなどのコードエディタのプラグインを提供します。Language Server Protocolにも対応予定です。
下記はドキュメント「Introduction :: Pkl Docs」からの引用です。
We created Pkl because we believe that configuration is best expressed in a special-purpose configuration language; a blend between a static configuration format, and a general-purpose programming language.
私たちがPklを開発した理由とは、コンフィグレーションはその目的に特化した設定用言語によって記述されることが最善であり、その言語とは静的なコンフィグレーションのフォーマットと汎用的なプログラミング言語をミックスしたものだと信じているからです。
Pklで記述した内容は、JSONやYAML、XMLプロパティリストなど単一のコードから複数の形式で出力可能です。
下記は元になるPklのコード。
name = "Swallow"
job {
title = "Sr. Nest Maker"
company = "Nests R Us"
yearsOfExperience = 2
}
上記のコードからJSON形式で出力した例。
{
"name": "Swallow",
"job": {
"title": "Sr. Nest Maker",
"company": "Nests R Us",
"yearsOfExperience": 2
}
}
YAMLで出力した例。
name: Swallow
job:
title: Sr. Nest Maker
company: Nests R Us
yearsOfExperience: 2
あわせて読みたい
楽天ポイントの次世代プラットフォームにNewSQLのTiDBが採用決定。その背景と評価結果を楽天のエンジニアが解説[PR]
≪前の記事
AWS、IPv4アドレスへの課金が今月からスタート。1カ月約500円