2 releases
Uses old Rust 2015
0.0.2 | Apr 4, 2015 |
---|---|
0.0.1 | Mar 31, 2015 |
#12 in #cdb
Used in 2 crates
(via tinycdb)
110KB
2K
SLoC
Contains (ELF exe/lib, 27KB) deps/tinycdb-0.78/cdb, (static library, 26KB) deps/tinycdb-0.78/libcdb.a, (static library, 27KB) deps/tinycdb-0.78/libcdb_pic.a, (ELF exe/lib, 3KB) deps/tinycdb-0.78/cdb_find.lo, (ELF exe/lib, 3KB) deps/tinycdb-0.78/cdb_findnext.lo, (ELF exe/lib, 2KB) deps/tinycdb-0.78/cdb_hash.lo and 7 more.
tinycdb-rs
This project consists of Rust bindings to tinycdb, a small library for creating and reading constant key-value databases.
Example
Add this to your Cargo.toml
:
[dependencies.tinycdb]
git = "https://github.com/andrew-d/tinycdb-rs"
Then, in your crate:
extern crate tinycdb;
use tinycdb::base::Cdb;
Reading a database:
let path = Path::new("test.cdb");
let mut db = match Cdb::open(&path) {
Ok(db) => db,
Err(why) => panic!("Could not open CDB: {}", why),
};
match db.find(b"foo") {
Some(val) => println!("Value of 'foo' key is: {}", val),
None => println!("'foo' key was not found"),
};
Creating a database:
let path = Path::new("created.cdb");
let res = Cdb::new(&path, |creator| {
let r = creator.add(b"foo", b"bar");
assert!(r.is_ok());
});
let mut db = match res {
Ok(db) => db,
Err(why) => panic!("Could not create database: {}", why),
};
// Now, use 'db' as normal...
License
MIT (the original code of TinyCDB is in the public domain)