chickadee » leveldb

Outdated egg!

This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for 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 egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.

leveldb

Description

Bindings to LevelDB, a fast and lightweight key/value database library by Google. Provides an implementation of the level egg. Include both eggs to provide the API used in these examples.

Examples

Basic operation

    
(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)

Batches and ranges

    
(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)

API

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.

close-db dbprocedure

Closes database db.

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

3.0.3

3.0.2

3.0.1

3.0.0

Contents »