Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== Outdated egg! This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for [[/eggref/5/leveldb|the CHICKEN 5 version of this egg]], if it exists. If it does not exist, there may be equivalent functionality provided by another egg; have a look at the [[https://wiki.call-cc.org/chicken-projects/egg-index-5.html|egg index]]. Otherwise, please consider porting this egg to the current version of CHICKEN. == leveldb [[toc:]] === Description Bindings to [[https://code.google.com/p/leveldb/|LevelDB]], a fast and lightweight key/value database library by Google. Provides an implementation of the [[https://wiki.call-cc.org/eggref/4/level|level]] egg. Include both eggs to provide the API used in these examples. === Examples ==== Basic operation <enscript highlight="scheme"> (use level leveldb) (define db (open-db "./example")) (db-put db "hello" "world") (display (db-get db "hello")) ;; => world (db-delete db "hello") (close-db db) </enscript> ==== Batches and ranges <enscript highlight="scheme"> (use level leveldb lazy-seq) (define operations '((put "name:123" "jane") (put "name:456" "joe"))) (define (print-names pairs) (lazy-each print pairs)) (call-with-db "./example" (lambda (db) (db-batch db operations) (print-names (db-pairs db start: "name:" end: "name::")))) ;; prints ;; => (name:123 jane) ;; => (name:456 joe) </enscript> === API <procedure>(open-db loc #!key (create #t) (exists #t))</procedure> Opens database with path {{loc}} and returns a database object. By default, this method will create the database if it does not exist at {{loc}} and will not error if the database already exists. This behaviour can be modified using the keyword arguments. Setting {{exists}} to {{#f}} will mean an exception occurs if the database already exists. Setting {{create}} to {{#f}} will mean an exception occurs if the database does not exist. <procedure>(close-db db)</procedure> Closes database {{db}}. <procedure>(call-with-db loc proc #!key (create #t) (exists #t))</procedure> Opens database at {{loc}} and calls (proc db). The database will be closed when proc returns or raises an exception. === Source code / issues [[https://github.com/caolan/chicken-leveldb]] === Changelog ==== 4.0.0 * update to new level interface (v3.0.0): * remove db-stream, add db-keys, db-values and db-pairs * change missing key condition to type (exn level not-found) instead of (exn leveldb not-found) ==== 3.0.3 * add test-generative as dependency ==== 3.0.2 * add missing miscmacros dependency ==== 3.0.1 * fixed out of date dependencies in meta file ==== 3.0.0 * Re-written using the LevelDB C API * All conditions are now of type (exn leveldb) * Uses new level egg interface and added db-get/default support * db-stream now returns key+value combinations as pairs instead of lists eg, (("key" . "value")) instead of (("key" "value")) * all write operations now return #<unspecified> instead of #t
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you multiply 0 by 4?