1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! Datalayer access: the raw key-value, table, time-series, semantic, and blob
//! APIs, plus the typed [`state`], [`store`], [`table`], and [`tree`] wrappers
//! over them.
//!
//! # Choosing a store
//!
//! | Handle | Keys | Best for |
//! |---|---|---|
//! | [`State`](state::State) | one fixed key | a single value read and updated as a whole |
//! | [`Kv`](tree::Kv) | UTF-8 strings, `/`-hierarchical | data enumerated one subtree at a time (cheap prefix scans) |
//! | [`Table`](table::Table) | raw entity-id bytes ([`Sri`](crate::Sri), `Vec<u8>`, `String`) | typed rows with ordered iteration, counting, and host-generated ids |
//! | [`BlobStore`](store::BlobStore) | paths | files and static assets (content-addressed, served by the [`gateway`](crate::gateway)) |
//! | [`publish_measurement`] / [`find_measurement`] | series name + tags | time-series samples |
//! | [`sem_update`] / [`sem_select`] | graph queries | semantic (RDF) data |
//!
//! Everything here is durable — private db state survives restarts and
//! respawns. State that must *not* be persisted (host resource handles)
//! belongs in [`InMemory`](crate::InMemory) instead.
pub use ;
pub use ;
pub use ;
pub use ;
// re-export the stuff from `myrmic-common` that we need when writing module logic
pub use ;
// for now, we are working with constant-size buffers that we allocate on the stack
// we could later extend the api to allow the user to specify the maximal size of buffers
const MAX_SIZE_COMM_BUFFER: usize = 100;