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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! # Horon
//!
//! Hierarchical data storage in a single `.htt` file, with write-ahead
//! logging, zstd compression, and geometric access control.
//!
//! Horon wraps a deterministic in-memory hyperbolic `Store` with durable
//! persistence:
//! every mutation is appended to a WAL, snapshots are produced by compaction,
//! and cold start replays the log to reconstruct identical geometric state
//! on any platform (guaranteed by gMath's deterministic fixed-point arithmetic).
//!
//! ## Quick Start
//!
//! ```no_run
//! use horon::Horon;
//! use g_math::fixed_point::FixedPoint;
//!
//! // Open or create a .htt file
//! let htt = Horon::open("data.htt").unwrap();
//!
//! // Standard Store operations — persisted automatically
//! htt.put("/config/db", b"postgres://localhost").unwrap();
//! let data = htt.get("/config/db").unwrap();
//!
//! // Coordinates and distances are Q64.64 fixed point, never floats, so the
//! // same query returns bit-identical results on every platform. Conversion
//! // from a decimal literal is explicit: the lossy step stays visible at the
//! // call site instead of hiding inside the API.
//! let origin: Vec<FixedPoint> = (0..4).map(|_| FixedPoint::from_int(0)).collect();
//! let (path, dist) = htt.nearest(&origin).unwrap();
//!
//! // Compact WAL into snapshot
//! htt.compact().unwrap();
//! ```
// Re-exports
pub use ;
// Engine surface reachable through this crate alone: the store type behind
// `Horon::store()`, the error payload carried by `HoronError::Store`,
// the outlier record returned by `Horon::find_outliers`, and the semantic
// concept disk. Users never have to name the engine crate.
pub use ;
pub use ;
pub use ;
pub use ;
pub use SemLayout;
pub use ;