JSDokan で JSON をファイルシステムに

Windows版FUSE Dokan がオープンソースになったよ!! - yukobaの日記 が面白そうだったので、ちょっと触ってみた。

Dokan は Windows でファイルシステムを作るためのライブラリ。C, .NET, Ruby から気軽にファイルシステムが使えるようになる。それを id:yukoba さんは Java で動くようにして、さらに Rhino を使って JavaScript 製のファイルシステムをデモしている。

それならば、と C# 経由で JScript を叩くライブラリを作ってみた。題して「JSDokan」。

JSDokan のサンプル「JsonFS」

JSDokan を使ったサンプルとして JSON をファイルシステムにする「JsonFS」というのを作ってみた。

例えば、このような JSON が...

private var json:Object = {
    'object1' : {
        '1-1' : "hoge\r\nfuga",
        '1-2' : 'hoge'
    },
    'object2' : {
        '2-1' : 'foo',
    },
    'array1' : [
        'value1', 'value2', 'value3'
    ],
    'param1' : 'value1',
    'param2' : 'value2'
};

こんなファイル構造になる。

オブジェクトと配列がフォルダになる。ファイルの中にはちゃんと値が入るように実装した。

JavaScript のソースコードは こんなの。90行足らずの JavaScript でファイルシステムが作れるなんて!

JSDokan の使い方

JSDokan のバイナリはこちら。超α版なのでバーチャルマシンなどでの検証を推奨。

マウントするには Dokan をインストールした上で、

JSDokan JsonFS.js J

と実行する。1つ目のパラメータが JavaScript、2つ目のパラメータがドライブ名。

アンマウントするには、Dokan 付属の dokanctl.exe で dokanctl.exe /u J と実行する。

ただし、JSDokan の実行には、.NET Framework 2.0 ランタイム が必要です。また、DokanNet のパッケージに入っているバイナリが一部古いバージョンのようなので、JSDokan のパッケージに最新版の DokanNet バイナリを含めています。

JSDokan は MIT ライセンスとします。

ソースコード

ソースは Coderepos にうpした。