Skip to main content

silk/
lib.rs

1pub mod bloom;
2pub mod buffer;
3pub mod clock;
4pub mod engine;
5pub mod entry;
6pub mod gossip;
7pub mod graph;
8pub mod obslog;
9pub mod ontology;
10pub mod oplog;
11#[cfg(feature = "python")]
12mod python;
13pub mod store;
14pub mod sync;
15
16// Re-exports for ergonomic Rust usage
17pub use bloom::BloomFilter;
18pub use buffer::OperationBuffer;
19pub use clock::LamportClock;
20pub use entry::{Entry, GraphOp, Hash, Value};
21pub use gossip::PeerRegistry;
22pub use graph::{Edge, MaterializedGraph, Node};
23pub use obslog::{ObsLogError, Observation, ObservationLog};
24pub use ontology::{
25    EdgeTypeDef, MonotonicityError, NodeTypeDef, NodeTypeUpdate, Ontology, OntologyExtension,
26    PropertyDef, ValidationError, ValueType,
27};
28pub use oplog::{OpLog, OpLogError};
29pub use store::{Store, StoreError};
30pub use sync::{Snapshot, SyncOffer, SyncPayload, PROTOCOL_VERSION};
31
32/// PyO3 module entry point — called by Python when `import silk._native`.
33#[cfg(feature = "python")]
34#[pyo3::pymodule]
35fn _native(m: &pyo3::Bound<'_, pyo3::types::PyModule>) -> pyo3::PyResult<()> {
36    python::register(m)?;
37    Ok(())
38}