update readme

This commit is contained in:
Xie Yanbo 2020-02-29 14:08:20 +08:00
parent f6e2b444d2
commit b08c66fe7f
1 changed files with 45 additions and 1 deletions

View File

@ -1,2 +1,46 @@
# leveldb.nim
LevelDB wrapper for Nim
A LevelDB wrapper for Nim in a Nim friendly way.
Create a database:
```Nim
import leveldb
import options
var db = leveldb.open("/tmp/mydata")
```
Read or modify the database content:
```Nim
assert db.getOrDefault("nothing", "") == ""
db.put("hello", "world")
db.put("bin", "GIF89a\1\0")
echo db.get("hello")
assert db.get("hello").isSome()
var key, val = ""
for key, val in db.iter():
echo key, ": ", repr(val)
db.delete("hello")
assert db.get("hello").isNone()
```
Batch writes:
```Nim
let batch = newBatch()
for i in 1..10:
batch.put("key" & $i, $i)
batch.delete("bin")
db.write(batch)
```
Iterate over subset of database content:
```Nim
for key, val in db.iterPrefix(prefix = "key1"):
echo key, ": ", val
for key, val in db.iter(seek = "key3", reverse = true):
echo key, ": ", val
db.close()
```