Skip to main content

quipu_core/
lib.rs

1//! # quipu-core
2//!
3//! Embedded, OS-independent audit-log storage engine.
4//!
5//! - Append-only segment files with CRC framing (pure `std::fs`, no OS-specific APIs)
6//! - Typed, versioned entity/actor registries (search by current *or* past attribute
7//!   values; logs always render the values as they were at record time)
8//! - Per-field protection: SHA-256 hashing (searchable) or RSA-OAEP encryption
9//! - Custom audit-log columns (text / number / json) managed through a registry
10//! - Retention windows enforced by whole-segment drops
11//!
12//! The async event pipeline, filters, DLQ and HTTP proxy live in `quipu-middleware`;
13//! this crate is the synchronous storage and query core underneath it.
14
15pub mod access;
16pub mod checkpoint;
17pub mod crypto;
18pub mod error;
19pub mod id;
20pub mod merkle;
21pub mod merkle_log;
22pub mod model;
23pub mod query;
24pub mod registry;
25pub mod retention;
26pub mod schema;
27pub mod storage;
28pub mod store;
29pub mod time;
30mod tokens;
31
32pub use access::{
33    summarize_access_query, summarize_log_query, AccessQuery, AccessRecord, ACCESS_TYPE,
34    RESERVED_TYPE_PREFIX,
35};
36pub use checkpoint::Checkpoint;
37pub use crypto::{KeyRing, KeyVersion, KEYLESS};
38pub use error::{Error, Result};
39pub use id::Uid;
40pub use merkle::Hash;
41pub use merkle_log::{ConsistencyProof, InclusionProof};
42pub use model::{AuditLog, Content, StoredValue, TargetRelation, Value, ValueKind};
43pub use query::{LogQuery, LogView, MatchMode, Order, QueryPage, TargetFilter, TargetSnapshot};
44pub use registry::{EntityInput, FieldTokens};
45pub use retention::RetentionPolicy;
46pub use schema::{
47    default_actor_type, default_target_type, CustomColumnDef, FieldDef, FieldIndex,
48    FieldProtection, TypeSchema,
49};
50pub use store::{
51    AnchorHook, AuditStore, ReadSnapshot, RekeyEvent, RekeyedTable, StoreConfig, SyncPolicy,
52};