#bindings #cdb #key #find #tinycdb #tiny-cdb

sys tinycdb-sys

FFI绑定TinyCDB C库(http://www.corpit.ru/mjt/tinycdb.html)

2个版本

使用旧的Rust 2015

0.0.2 2015年4月4日
0.0.1 2015年3月31日

#12 in #cdb


2个crate中使用(通过tinycdb

MIT许可协议

110KB
2K SLoC

C 1.5K SLoC // 0.1% comments Shell 115 SLoC // 0.1% comments Rust 110 SLoC // 0.3% comments RPM Specfile 71 SLoC // 0.1% comments

包含(ELF可执行文件/库,27KB) deps/tinycdb-0.78/cdb,(静态库,26KB) deps/tinycdb-0.78/libcdb.a,(静态库,27KB) deps/tinycdb-0.78/libcdb_pic.a,(ELF可执行文件/库,3KB) deps/tinycdb-0.78/cdb_find.lo,(ELF可执行文件/库,3KB) deps/tinycdb-0.78/cdb_findnext.lo,(ELF可执行文件/库,2KB) deps/tinycdb-0.78/cdb_hash.lo 等7个更多

tinycdb-rs

Build Status Coverage Status Docs

本项目包括对tinycdb的Rust绑定,tinycdb是一个用于创建和读取常量键值数据库的小型库。

示例

将以下内容添加到您的Cargo.toml

[dependencies.tinycdb]

git = "https://github.com/andrew-d/tinycdb-rs"

然后,在您的crate中

extern crate tinycdb;

use tinycdb::base::Cdb;

读取数据库

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"),
};

创建数据库

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...

许可协议

MIT(TinyCDB的原始代码属于公有领域)

依赖项