Gauche-tokyocabinet 0.1 をリリース

dbmライブラリのTokyo CabinetをGaucheから使う拡張ライブラリ、Gauche-tokyocabinet 0.1をリリースしました。現在はTokyo CabinetのB+木のライブラリのみに対応しています。

http://hayamin.com/files/Gauche-tokyocabinet-0.1.tgz

インストール

上記のファイルを適当な場所にダウンロードして解凍、./configure ; make ; make install でOK

使い方

Gaucheには標準でdbm用のインターフェースが用意されており、dbmの実装ごとのAPIのラッパーとして、各種dbmライブラリ(gdbm, qdbm, ndbm, ...)を透過的に扱うことができます。

Gauche Users’ Reference: Top

ライブラリをロード
(use dbm)
(use dbm.tokyocabinet)
データベースを開く
(define db (dbm-open <tcbdb> :path "test.db" :rw-mode :create))
;; test.db というファイルができる

のところをにすればgdbmが使えたりします。ここでopenしたdbmオブジェクトに対してさまざまな操作をすることで、データベースの操作をおこないます。

レコードを挿入
(dbm-put! db "key" "value")
レコードを取得
(dbm-get db "key") ;; => "value"
(dbm-get db "foo") ;; 存在しないキー => error
(dbm-get db "foo" #f) ;; 第三引数にデフォルト値を指定できる => #f
データベースに対するmap, for-each
(dbm-put! db "key1" "value1")
(dbm-put! db "key2" "value3")
(dbm-put! db "key3" "value3")

(dbm-map db cons)
;; => (("key" . "value") ("key1" . "value1") ("key2" . "value3") ("key3" . "value3"))

(dbm-for-each db (lambda (k v) (print k ":" v)))
key:value
key1:value1
key2:value3
key3:value3
;; => #<undef>
データベースを閉じる
(dbm-close db)

Tokyo Cabinetはcloseしないとデータベースファイルが壊れてしまうので、使用後はcloseをわすれないようにしましょう。

ToDo