Skip to main content

reddb_server/
lib.rs

1#![allow(dead_code, unused_imports, unused_variables)]
2// Structural lints we accept for API design reasons:
3#![allow(
4    clippy::too_many_arguments,   // complex DB operations legitimately need many params
5    clippy::type_complexity,      // internal types with nested generics
6    clippy::result_large_err,     // tonic::Status is 176 bytes, can't box it
7    clippy::should_implement_trait, // from_str() returns Option, not Result — different semantics
8    clippy::new_without_default,  // some constructors have side effects
9    clippy::enum_variant_names,   // JoinPhase variants all end in Start by design
10    clippy::wrong_self_convention, // to_bytes on Copy types in our serialization
11    clippy::len_without_is_empty  // segment structs don't need is_empty
12)]
13
14pub mod ai;
15pub mod api;
16pub mod application;
17pub mod auth;
18pub mod backup_bootstrap;
19pub mod catalog;
20pub mod cli;
21pub mod cluster;
22pub mod config;
23pub mod crypto;
24pub mod ec;
25pub mod engine;
26pub mod geo;
27pub mod grpc;
28pub mod health;
29pub mod index;
30pub mod json;
31pub mod json_field;
32pub mod log;
33pub mod mcp;
34pub mod modules;
35pub mod notifications;
36pub mod physical;
37pub(crate) mod presentation;
38pub mod regress;
39pub mod replication;
40pub(crate) mod reserved_fields;
41pub mod rpc_stdio;
42pub mod runtime;
43pub mod serde_json;
44pub mod server;
45pub mod service_cli;
46mod service_router;
47pub mod sqlstate;
48pub mod storage;
49pub mod streams;
50pub mod telemetry;
51pub mod utils;
52pub mod wire;
53
54/// Re-export of the shared `reddb-wire` crate.
55///
56/// `reddb-wire` is the transport-agnostic protocol vocabulary:
57/// connection strings, audit-safe sanitizers, RedWire frames/codecs,
58/// payloads, topology, and replication wire messages. Exposed here so
59/// existing `use reddb::...` callers can reach the shared protocol
60/// contracts without a separate dependency.
61pub use reddb_wire as wire_proto;
62
63pub mod prelude {
64    pub use crate::api::{
65        Capability, CapabilitySet, CatalogService, CatalogSnapshot, CollectionStats, DataOps,
66        QueryPlanner, RedDBError, RedDBOptions, RedDBResult, SchemaManifest, StorageMode,
67        DEFAULT_EXPORT_RETENTION, DEFAULT_SNAPSHOT_RETENTION, REDDB_FORMAT_VERSION,
68        REDDB_PROTOCOL_VERSION,
69    };
70    pub use crate::application::{
71        AdminUseCases, CatalogUseCases, EntityUseCases, GraphUseCases, NativeUseCases,
72        QueryUseCases, RuntimeAdminPort, RuntimeCatalogPort, RuntimeEntityPort, RuntimeGraphPort,
73        RuntimeNativePort, RuntimeQueryPort, RuntimeSchemaPort, SchemaUseCases,
74    };
75    pub use crate::auth::store::AuthStore;
76    pub use crate::auth::{AuthConfig, AuthError, Role as AuthRole};
77    pub use crate::catalog::{
78        snapshot_store, CatalogModelSnapshot, CollectionDescriptor, CollectionModel, SchemaMode,
79    };
80    pub use crate::engine::{EngineInfo, EngineStats, RedDBEngine};
81    pub use crate::grpc::{GrpcServerOptions, GrpcTlsOptions, RedDBGrpcServer};
82    pub use crate::health::{HealthIssue, HealthProvider, HealthReport, HealthState};
83    pub use crate::index::{
84        IndexCatalog, IndexCatalogSnapshot, IndexConfig, IndexKind, IndexMetric, IndexRuntime,
85        IndexStats,
86    };
87    pub use crate::physical::{
88        ArtifactState, BlockReference, CompactionPolicy, ExportDescriptor, GridLayout,
89        ManifestEvent, ManifestEventKind, ManifestPointers, PhysicalAnalyticsJob,
90        PhysicalGraphProjection, PhysicalIndexState, PhysicalLayout, PhysicalMetadataFile,
91        SnapshotDescriptor, SuperblockHeader, WalPolicy, DEFAULT_MANIFEST_EVENT_HISTORY,
92        PHYSICAL_METADATA_PROTOCOL_VERSION,
93    };
94    pub use crate::runtime::{
95        ConnectionPoolConfig, RedDBRuntime, RuntimeConnection, RuntimeFilter, RuntimeFilterValue,
96        RuntimeGraphCentralityAlgorithm, RuntimeGraphCentralityResult, RuntimeGraphCentralityScore,
97        RuntimeGraphClusteringResult, RuntimeGraphCommunity, RuntimeGraphCommunityAlgorithm,
98        RuntimeGraphCommunityResult, RuntimeGraphComponent, RuntimeGraphComponentsMode,
99        RuntimeGraphComponentsResult, RuntimeGraphCyclesResult, RuntimeGraphDegreeScore,
100        RuntimeGraphDirection, RuntimeGraphEdge, RuntimeGraphHitsResult,
101        RuntimeGraphNeighborhoodResult, RuntimeGraphNode, RuntimeGraphPath,
102        RuntimeGraphPathAlgorithm, RuntimeGraphPathResult, RuntimeGraphPattern,
103        RuntimeGraphProjection, RuntimeGraphTopologicalSortResult, RuntimeGraphTraversalResult,
104        RuntimeGraphTraversalStrategy, RuntimeGraphVisit, RuntimeIvfMatch, RuntimeIvfSearchResult,
105        RuntimeQueryResult, RuntimeQueryWeights, RuntimeStats, ScanCursor, ScanPage,
106    };
107    pub use crate::server::{RedDBServer, ServerOptions, ServerReplicationState};
108    pub use crate::storage::{
109        DeployProfile, StorageDeployPreset, StoragePackaging, StorageProfileSelection,
110    };
111}
112
113pub use crate::api::{
114    tier_wiring, Capability, CapabilitySet, CatalogService, CatalogSnapshot, CollectionStats,
115    DataOps, QueryPlanner, RedDBError, RedDBOptions, RedDBResult, SchemaManifest, StorageMode,
116    DEFAULT_EXPORT_RETENTION, DEFAULT_SNAPSHOT_RETENTION, REDDB_FORMAT_VERSION,
117    REDDB_PROTOCOL_VERSION,
118};
119pub use crate::application::{
120    AdminUseCases, CatalogUseCases, EntityUseCases, GraphUseCases, NativeUseCases, QueryUseCases,
121    RuntimeAdminPort, RuntimeCatalogPort, RuntimeEntityPort, RuntimeGraphPort, RuntimeNativePort,
122    RuntimeQueryPort, RuntimeSchemaPort, SchemaUseCases,
123};
124pub use crate::catalog::{
125    snapshot_store, CatalogModelSnapshot, CollectionDescriptor, CollectionModel, SchemaMode,
126};
127pub use crate::engine::{EngineInfo, EngineStats, RedDBEngine};
128pub use crate::grpc::{GrpcServerOptions, GrpcTlsOptions, RedDBGrpcServer};
129pub use crate::health::{HealthIssue, HealthProvider, HealthReport, HealthState};
130pub use crate::index::{
131    IndexCatalog, IndexCatalogSnapshot, IndexConfig, IndexKind, IndexMetric, IndexRuntime,
132    IndexStats,
133};
134pub use crate::physical::{
135    fold_dwb_into_wal_enabled, fold_pager_meta_enabled, meta_json_sidecar_enabled, provision_shm,
136    read_shm_header, seqn_journal_enabled, seqn_journal_retention, set_fold_dwb_into_wal_enabled,
137    set_fold_pager_meta_enabled, set_meta_json_sidecar_enabled, set_seqn_journal_enabled,
138    set_seqn_journal_retention, set_shm_provisioning_enabled, shm_path_for,
139    shm_provisioning_enabled, ArtifactState, BlockReference, CompactionPolicy, ExportDescriptor,
140    GridLayout, ManifestEvent, ManifestEventKind, ManifestPointers, PhysicalAnalyticsJob,
141    PhysicalGraphProjection, PhysicalIndexState, PhysicalLayout, PhysicalMetadataFile, ShmHandle,
142    ShmHeader, ShmProvisionState, SnapshotDescriptor, SuperblockHeader, WalPolicy,
143    DEFAULT_MANIFEST_EVENT_HISTORY, DEFAULT_METADATA_JOURNAL_RETENTION,
144    OPT_IN_METADATA_JOURNAL_RETENTION, PHYSICAL_METADATA_PROTOCOL_VERSION, SHM_FILE_SIZE,
145    SHM_HEADER_SIZE, SHM_MAGIC, SHM_VERSION,
146};
147pub use crate::replication::{ReplicationConfig, ReplicationRole};
148pub use crate::runtime::{
149    ConnectionPoolConfig, RedDBRuntime, RuntimeConnection, RuntimeFilter, RuntimeFilterValue,
150    RuntimeGraphCentralityAlgorithm, RuntimeGraphCentralityResult, RuntimeGraphCentralityScore,
151    RuntimeGraphClusteringResult, RuntimeGraphCommunity, RuntimeGraphCommunityAlgorithm,
152    RuntimeGraphCommunityResult, RuntimeGraphComponent, RuntimeGraphComponentsMode,
153    RuntimeGraphComponentsResult, RuntimeGraphCyclesResult, RuntimeGraphDegreeScore,
154    RuntimeGraphDirection, RuntimeGraphEdge, RuntimeGraphHitsResult,
155    RuntimeGraphNeighborhoodResult, RuntimeGraphNode, RuntimeGraphPath, RuntimeGraphPathAlgorithm,
156    RuntimeGraphPathResult, RuntimeGraphPattern, RuntimeGraphProjection,
157    RuntimeGraphTopologicalSortResult, RuntimeGraphTraversalResult, RuntimeGraphTraversalStrategy,
158    RuntimeGraphVisit, RuntimeIvfMatch, RuntimeIvfSearchResult, RuntimeQueryResult,
159    RuntimeQueryWeights, RuntimeStats, ScanCursor, ScanPage,
160};
161pub use crate::server::{RedDBServer, ServerOptions, ServerReplicationState};
162pub use reddb_file::{TimelineHistory, TimelineId};
163
164pub use crate::storage::*;