[][src]Crate icbiadb

A lightweight database implementation for KV, table and document databases.

Key-Value example

use icbiadb::storage::BTreeMap;

let mut db = icbiadb::kv::create::<BTreeMap>("my_kvs.idb").unwrap();
db.set("hello:world", 100);
db.commit();

See KvDb for all methods.

Table example

use icbiadb::if_not_exists_create;

let mut db = icbiadb::table::create("my_tables.idb").unwrap();

if_not_exists_create! {db, "articles",
    (title: String, date: String[unique])
};

let mut record = icbiadb::TableRow::default();
record.set_col("title", "A short title");
record.set_col("date", "today");
db.insert_row("articles", record);

db.commit();

Re-exports

pub use database::kv;
pub use database::table;
pub use database::table::types::TableRow;
pub use database::DocDb;
pub use database::KvDb;
pub use database::TableDb;
pub use utils::deserialize;
pub use utils::deserialize_bytevec;
pub use utils::deserialize_object;
pub use utils::normalize_type_name;
pub use utils::serialize;
pub use utils::serialize_object;
pub use utils::serialize_to_bytevec;

Modules

database
fio
macros
prelude
slice
storage

Underlying storage of the Key-Value database implementation

types
utils

Macros

if_not_exists_create
query
query_deserialize