diff --git a/README.md b/README.md index d54a1e1..8ced596 100644 --- a/README.md +++ b/README.md @@ -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() +```