Skip to main content

fathomdb_engine/
lib.rs

1#[macro_use]
2mod trace_support;
3
4mod admin;
5mod coordinator;
6mod database_lock;
7mod embedder;
8mod ids;
9mod operational;
10mod projection;
11pub mod rebuild_actor;
12mod runtime;
13mod sqlite;
14mod telemetry;
15mod writer;
16
17pub use admin::{
18    AdminHandle, AdminService, FtsProfile, FtsPropertyPathMode, FtsPropertyPathSpec,
19    FtsPropertySchemaRecord, IntegrityReport, LogicalPurgeReport, LogicalRestoreReport,
20    ProjectionImpact, ProvenancePurgeOptions, ProvenancePurgeReport, SafeExportManifest,
21    SafeExportOptions, SemanticReport, SkippedEdge, TOKENIZER_PRESETS, TraceReport, VecProfile,
22    VectorRegenerationConfig, VectorRegenerationReport, load_vector_regeneration_config,
23};
24pub use coordinator::{
25    ActionRow, EdgeExpansionRootRows, EdgeExpansionSlotRows, EdgeRow, ExecutionCoordinator,
26    ExpansionRootRows, ExpansionSlotRows, GroupedQueryRows, NodeRow, ProvenanceEvent, QueryPlan,
27    QueryRows, RunRow, StepRow,
28};
29#[cfg(feature = "default-embedder")]
30pub use embedder::BuiltinBgeSmallEmbedder;
31pub use embedder::{EmbedderError, QueryEmbedder, QueryEmbedderIdentity};
32pub use ids::{new_id, new_row_id};
33pub use operational::{
34    OperationalCollectionKind, OperationalCollectionRecord, OperationalCompactionReport,
35    OperationalCurrentRow, OperationalFilterClause, OperationalFilterField,
36    OperationalFilterFieldType, OperationalFilterMode, OperationalFilterValue,
37    OperationalHistoryValidationIssue, OperationalHistoryValidationReport, OperationalMutationRow,
38    OperationalPurgeReport, OperationalReadReport, OperationalReadRequest,
39    OperationalRegisterRequest, OperationalRepairReport, OperationalRetentionActionKind,
40    OperationalRetentionPlanItem, OperationalRetentionPlanReport, OperationalRetentionRunItem,
41    OperationalRetentionRunReport, OperationalSecondaryIndexDefinition,
42    OperationalSecondaryIndexField, OperationalSecondaryIndexRebuildReport,
43    OperationalSecondaryIndexValueType, OperationalTraceReport, OperationalValidationContract,
44    OperationalValidationField, OperationalValidationFieldType, OperationalValidationMode,
45};
46pub use projection::{ProjectionRepairReport, ProjectionService, ProjectionTarget};
47pub use rebuild_actor::{RebuildMode, RebuildProgress, RebuildStateRow};
48pub use runtime::EngineRuntime;
49pub use sqlite::{SharedSqlitePolicy, shared_sqlite_policy};
50pub use telemetry::{
51    SqliteCacheStatus, TelemetryCounters, TelemetryLevel, TelemetrySnapshot, read_db_cache_status,
52};
53pub use writer::{
54    ActionInsert, ChunkInsert, ChunkPolicy, EdgeInsert, EdgeRetire, LastAccessTouchReport,
55    LastAccessTouchRequest, NodeInsert, NodeRetire, OperationalWrite, OptionalProjectionTask,
56    ProvenanceMode, RunInsert, StepInsert, VecInsert, WriteReceipt, WriteRequest, WriterActor,
57};
58
59use thiserror::Error;
60
61/// Top-level error type for all engine operations.
62#[derive(Debug, Error)]
63pub enum EngineError {
64    #[error("sqlite error: {0}")]
65    Sqlite(#[from] rusqlite::Error),
66    #[error("schema error: {0}")]
67    Schema(#[from] fathomdb_schema::SchemaError),
68    #[error("io error: {0}")]
69    Io(#[from] std::io::Error),
70    #[error("writer actor rejected request: {0}")]
71    WriterRejected(String),
72    #[error("write timed out (may still commit): {0}")]
73    WriterTimedOut(String),
74    #[error("invalid write request: {0}")]
75    InvalidWrite(String),
76    #[error("bridge error: {0}")]
77    Bridge(String),
78    #[error("capability missing: {0}")]
79    CapabilityMissing(String),
80    #[error("database locked: {0}")]
81    DatabaseLocked(String),
82    #[error("invalid configuration: {0}")]
83    InvalidConfig(String),
84    #[error(
85        "embedder not configured: call Engine::open with a non-None EmbedderChoice to regenerate vector embeddings"
86    )]
87    EmbedderNotConfigured,
88}