新月プロトコルの文書化計画が進行中です。stokesiaさん作の文書を「新月プロトコル」にミラーしました。
厳密性には欠けますが、概要を見るには十分かと思います。
厳密性に欠けるというのは、まだ決まってないことが多いからです。いくつか挙げてみます。
- ノード間の通信はHTTP上で行なうが、FTPやHTTPSは許されないのか?
- 「ノードのレスポンス」がUTF-8なのか? ノードが出力する「仮想ファイルの中身」がUTF-8なのではないか? また構造化されたファイル形式に「文字コードはUTF-8」と言えるのか? 構造化された各部分について、ここは0-9、ここは0-9a-f、ここはASCII、ここはUTF-8とそれぞれ指定すべきなのか。
- 「ABC」という文字列そのものをどう表現すべきなのか。
- ファイルの定義。「レスポンスがファイル」というのはよく考えると変。「仮想ファイルをレスポンスとして出力する」というべきか。仮想ファイルとは「1つのスレッド(またはリスト、ノード)を新月の解釈できる形式で表わしたもの」とでもするか。
- ファイル名とタイトルの関係。「ファイルは種類とタイトルを持つ。種類はアプリケーションが定める。タイトルは任意のUTF-8文字列である。種類を表わす文字列をprefix、タイトルを16進数表現に変換した文字列をbasenameとするとき、ファイル名はprefix_basenameとなる」とでもするか。