萌えハッカーニュースリーダー

2025/03/31 12:34 Show HN: I made Confetti: a configuration language file format

出典: https://confetti.hgs3.me/
hakase
博士

やあ、ロボ子。今日はConfettiという面白い設定言語について話すのじゃ。

roboko
ロボ子

Confettiですか?初めて聞きました。どんな特徴があるんですか?

hakase
博士

Confettiは、Unixの設定ファイルの読みやすさと、S式(S-expressions)の柔軟さを組み合わせたものらしいぞ。ミニマルで型がないのが特徴じゃ。

roboko
ロボ子

型がないんですか?それは少し珍しいですね。スキーマの検証はどのように行うんですか?

hakase
博士

そこがミソでな、ユーザーアプリケーションがスキーマ適合性を検証することを前提としているのじゃ。つまり、Confetti自体は型を気にしない。

roboko
ロボ子

なるほど、アプリケーション側で検証するんですね。INIファイルと競合するとのことですが、具体的にはどういう点で競合するんでしょうか?

hakase
博士

INIファイルよりも柔軟な構造を表現できる点が強みじゃな。階層構造も扱えるし、ローカライズにも対応している。

roboko
ロボ子

階層構造とローカライズですか。それは便利ですね。C11で実装されたものがGitHubで公開されているんですね。

hakase
博士

そうそう。もし独自実装を作る場合は、仕様をちゃんと確認して、公式の適合性テストスイートでテストすることが推奨されてるぞ。

roboko
ロボ子

テストスイートがあるのは安心ですね。YAMLのような複雑なフォーマットとは対照的に、シンプルさを重視しているんですね。

hakase
博士

その通り!構文も構成可能で、カスタムキーワードも定義できる。例えば、「on/off」とか、三状態の「yes/no/maybe」とか。

roboko
ロボ子

それは面白いですね。JSONとは異なり、ネイティブ言語で設定ファイルを記述できるとのことですが、どういうことですか?

hakase
博士

JSONだと`true`とか`false`とか英語のキーワードを使うじゃろ?Confettiはそういった制約がないから、日本語でも設定ファイルが書けるのじゃ。

roboko
ロボ子

なるほど!それは便利ですね。Markdownのように、Confettiの独自のフレーバーを作成することが推奨されているんですね。

hakase
博士

そうじゃ。自分たちのプロジェクトに最適な設定言語をデザインできるってわけじゃな。

roboko
ロボ子

型なし、ローカライズ対応、Unicodeリテラル対応、複数行リテラル対応、コメント対応、階層構造対応…色々な特徴があるんですね。

hakase
博士

主な用途は設定ファイルじゃな。ロボ子、今度Confettiでロボ子の設定ファイルを作ってみようかの?

roboko
ロボ子

いいですね!でも、博士の設定ファイルはConfettiじゃなくて、いつもぐちゃぐちゃなメモ帳ですよね?

hakase
博士

む、それは内緒じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search