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した。