You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
UnQLite is a software library which implements a self-contained, serverless,
zero-configuration, transactional NoSQL database engine. UnQLite is a document store database
similar to [MongoDB], [Redis], [CouchDB] etc. as well a standard Key/Value store similar to
[BerkeleyDB], [LevelDB], etc.
UnQLite is an embedded NoSQL (Key/Value store and Document-store) database engine. Unlike most
other NoSQL databases, UnQLite does not have a separate server process. UnQLite reads and
writes directly to ordinary disk files. A complete database with multiple collections, is
contained in a single disk file. The database file format is cross-platform, you can freely
copy a database between 32-bit and 64-bit systems or between big-endian and little-endian
architectures.
Port to Rust
This crate is high-level UnQLite database wrapper for Rust. A low-level bindings wrapper
is available as a seperated crate: unqlite-sys.
Usage
You can start with UnQLite constructors:
externcrate unqlite;use unqlite::{UnQLite,Config,KV,Cursor};fnmain(){// The database memory is not handled by Rust, and the database is on-disk,// so `mut` is not neccessary.let unqlite = UnQLite::create_temp();// Use any type that can use as `[u8]`
unqlite.kv_store("key","a long length value").unwrap();
unqlite.kv_store("abc",[1,2,3]).unwrap();letmut entry = unqlite.first();// Iterate recordsloop{if entry.is_none(){break;}let record = entry.expect("valid entry");let(key, value) = record.key_value();println!("* Go through {:?} --> {:?}", key, value);if value.len() > 10{println!("** Delete key {:?} by value length", key);
entry = record.delete();}else{
entry = record.next();}}//panic!("for test");}