筆者の環境では試せていないのですが面白そうなのでご紹介。 NoSQLも一定の認知度をもつようになってきました。特に有名なものとしてはMongoDBが知られています。JavaScriptが書けるのが便利で、MongoDB内でMapReduceを使ったりすることができます。 そんなMongoDBに強力なライバルが出現するかもしれません、というのがEnosqlになります。何とベースになるエンジンにV8を使った埋め込み型NoSQLエンジンです。

Enosqlの使い方

例えばこんな感じのコードになるようです。

    public class Tasks
    {
        public string _id { get; set; }
        public string task { get; set; }
        public DateTime duedate { get; set; }
        public string category { get; set; }
        public string status { get; set; }
    }

    private void addTask()
    {
        var db = new enosql.EnosqlDatabase(@"c:\temp\Todo.jdb");
        var TaskCollection = db.GetCollection<tasks>();
        TaskCollection.Insert(new Tasks()
        {
            task = "Pick up flowers",
            duedate = DateTime.Now.AddDays(2),
            category = "anniversary",
            status = "unfinished"
        });
    }

データベースのファイルを開き、GetCollectionでコレクション(テーブルみたいなもの)を取得します。そしてInsertでデータを追加しています。データの構造はフレキシブルに変更でき、まさにNoSQLとして活用できます。

100KBのデータを500レコードを書き込んだ場合、1.2〜1.5秒程度で書き込まれる速度とのこと。NoSQLであればスキーマ構造を持たない分、高速と思われます。

Windows版の構成。32/64bit版があり、DLLファイルで配布されています。

EnosqlはC#製、Windows用のオープンソース・ソフトウェア(MIT License)です。

donnyv/Enosql