https://github.com/caolan/chicken-leveldb
CHICKEN Scheme bindings to LevelDB
https://github.com/caolan/chicken-leveldb
Last synced: 5 months ago
JSON representation
CHICKEN Scheme bindings to LevelDB
- Host: GitHub
- URL: https://github.com/caolan/chicken-leveldb
- Owner: caolan
- Created: 2014-04-20T11:57:54.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2016-07-05T07:39:32.000Z (almost 10 years ago)
- Last Synced: 2025-04-07T14:15:42.032Z (about 1 year ago)
- Language: Scheme
- Size: 50.8 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
Awesome Lists containing this project
README
# leveldb
Bindings to [LevelDB][1], a fast and lightweight key/value database library by
Google. Provides an implementation of the [level][2] egg. Include both eggs to
provide the API used in these examples.
## Examples
### Basic operation
```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)
```
### Batches and ranges
```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-stream db start: "name:" end: "name::"))))
;; prints
;; => (name:123 jane)
;; => (name:456 joe)
```
## API
### Open and close
```scheme
(open-db loc #!key (create #t) (exists #t))
```
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.
```scheme
(close-db db)
```
Closes database `db`.
```scheme
(call-with-db loc proc #!key (create #t) (exists #t))
```
Opens database at `loc` and calls (proc db). The database will be closed when
proc returns or raises an exception.
[1]: https://code.google.com/p/leveldb/
[2]: https://github.com/caolan/chicken-level