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_field;
31pub mod log;
32pub mod mcp;
33pub mod modules;
34pub mod notifications;
35pub mod operational_bootstrap;
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
63/// Re-export shim for the in-house JSON aggregator + `json!` macro
64/// (ADR 0053). Both the `crate::json::{Value, Map, to_vec, ...}`
65/// aggregator module and the `crate::json!` macro now live in
66/// `reddb-io-types`; this single re-export carries both namespaces so
67/// every existing call-site (200+ uses of `crate::json::...` and
68/// `crate::json!(...)`) compiles unchanged. Replaces the former
69/// `pub mod json;` + local `json.rs` aggregator.
70pub use reddb_types::json;
71
72pub mod prelude {
73    pub use crate::api::{
74        Capability, CapabilitySet, CatalogService, CatalogSnapshot, CollectionStats, DataOps,
75        QueryPlanner, RedDBError, RedDBOptions, RedDBResult, SchemaManifest, StorageMode,
76        DEFAULT_EXPORT_RETENTION, DEFAULT_SNAPSHOT_RETENTION, REDDB_FORMAT_VERSION,
77        REDDB_PROTOCOL_VERSION,
78    };
79    pub use crate::application::{
80        AdminUseCases, CatalogUseCases, EntityUseCases, GraphUseCases, NativeUseCases,
81        QueryUseCases, RuntimeAdminPort, RuntimeCatalogPort, RuntimeEntityPort, RuntimeGraphPort,
82        RuntimeNativePort, RuntimeQueryPort, RuntimeSchemaPort, SchemaUseCases,
83    };
84    pub use crate::auth::store::AuthStore;
85    pub use crate::auth::{AuthConfig, AuthError, Role as AuthRole};
86    pub use crate::catalog::{
87        snapshot_store, CatalogModelSnapshot, CollectionDescriptor, CollectionModel, SchemaMode,
88    };
89    pub use crate::engine::{EngineInfo, EngineStats, RedDBEngine};
90    pub use crate::grpc::{GrpcServerOptions, GrpcTlsOptions, RedDBGrpcServer};
91    pub use crate::health::{HealthIssue, HealthProvider, HealthReport, HealthState};
92    pub use crate::index::{
93        IndexCatalog, IndexCatalogSnapshot, IndexConfig, IndexKind, IndexMetric, IndexRuntime,
94        IndexStats,
95    };
96    pub use crate::physical::{
97        ArtifactState, BlockReference, CompactionPolicy, ExportDescriptor, GridLayout,
98        ManifestEvent, ManifestEventKind, ManifestPointers, PhysicalAnalyticsJob,
99        PhysicalGraphProjection, PhysicalIndexState, PhysicalLayout, PhysicalMetadataFile,
100        SnapshotDescriptor, SuperblockHeader, WalPolicy, DEFAULT_MANIFEST_EVENT_HISTORY,
101        PHYSICAL_METADATA_PROTOCOL_VERSION,
102    };
103    pub use crate::runtime::{
104        ConnectionPoolConfig, RedDBRuntime, RuntimeConnection, RuntimeFilter, RuntimeFilterValue,
105        RuntimeGraphCentralityAlgorithm, RuntimeGraphCentralityResult, RuntimeGraphCentralityScore,
106        RuntimeGraphClusteringResult, RuntimeGraphCommunity, RuntimeGraphCommunityAlgorithm,
107        RuntimeGraphCommunityResult, RuntimeGraphComponent, RuntimeGraphComponentsMode,
108        RuntimeGraphComponentsResult, RuntimeGraphCyclesResult, RuntimeGraphDegreeScore,
109        RuntimeGraphDirection, RuntimeGraphEdge, RuntimeGraphHitsResult,
110        RuntimeGraphNeighborhoodResult, RuntimeGraphNode, RuntimeGraphPath,
111        RuntimeGraphPathAlgorithm, RuntimeGraphPathResult, RuntimeGraphPattern,
112        RuntimeGraphProjection, RuntimeGraphTopologicalSortResult, RuntimeGraphTraversalResult,
113        RuntimeGraphTraversalStrategy, RuntimeGraphVisit, RuntimeIvfMatch, RuntimeIvfSearchResult,
114        RuntimeQueryResult, RuntimeQueryWeights, RuntimeStats, ScanCursor, ScanPage,
115    };
116    pub use crate::server::{RedDBServer, ServerOptions, ServerReplicationState};
117    pub use crate::storage::{
118        DeployProfile, StorageDeployPreset, StoragePackaging, StorageProfileSelection,
119    };
120}
121
122pub use crate::api::{
123    tier_wiring, Capability, CapabilitySet, CatalogService, CatalogSnapshot, CollectionStats,
124    DataOps, QueryPlanner, RedDBError, RedDBOptions, RedDBResult, SchemaManifest, StorageMode,
125    DEFAULT_EXPORT_RETENTION, DEFAULT_SNAPSHOT_RETENTION, REDDB_FORMAT_VERSION,
126    REDDB_PROTOCOL_VERSION,
127};
128pub use crate::application::{
129    AdminUseCases, CatalogUseCases, EntityUseCases, GraphUseCases, NativeUseCases, QueryUseCases,
130    RuntimeAdminPort, RuntimeCatalogPort, RuntimeEntityPort, RuntimeGraphPort, RuntimeNativePort,
131    RuntimeQueryPort, RuntimeSchemaPort, SchemaUseCases,
132};
133pub use crate::catalog::{
134    snapshot_store, CatalogModelSnapshot, CollectionDescriptor, CollectionModel, SchemaMode,
135};
136pub use crate::engine::{EngineInfo, EngineStats, RedDBEngine};
137pub use crate::grpc::{GrpcServerOptions, GrpcTlsOptions, RedDBGrpcServer};
138pub use crate::health::{HealthIssue, HealthProvider, HealthReport, HealthState};
139pub use crate::index::{
140    IndexCatalog, IndexCatalogSnapshot, IndexConfig, IndexKind, IndexMetric, IndexRuntime,
141    IndexStats,
142};
143pub use crate::physical::{
144    fold_dwb_into_wal_enabled, fold_pager_meta_enabled, meta_json_sidecar_enabled, provision_shm,
145    read_shm_header, seqn_journal_enabled, seqn_journal_retention, set_fold_dwb_into_wal_enabled,
146    set_fold_pager_meta_enabled, set_meta_json_sidecar_enabled, set_seqn_journal_enabled,
147    set_seqn_journal_retention, set_shm_provisioning_enabled, shm_path_for,
148    shm_provisioning_enabled, ArtifactState, BlockReference, CompactionPolicy, ExportDescriptor,
149    GridLayout, ManifestEvent, ManifestEventKind, ManifestPointers, PhysicalAnalyticsJob,
150    PhysicalGraphProjection, PhysicalIndexState, PhysicalLayout, PhysicalMetadataFile, ShmHandle,
151    ShmHeader, ShmProvisionState, SnapshotDescriptor, SuperblockHeader, WalPolicy,
152    DEFAULT_MANIFEST_EVENT_HISTORY, DEFAULT_METADATA_JOURNAL_RETENTION,
153    OPT_IN_METADATA_JOURNAL_RETENTION, PHYSICAL_METADATA_PROTOCOL_VERSION, SHM_FILE_SIZE,
154    SHM_HEADER_SIZE, SHM_MAGIC, SHM_VERSION,
155};
156pub use crate::replication::{ReplicationConfig, ReplicationRole};
157pub use crate::runtime::{
158    ConnectionPoolConfig, RedDBRuntime, RuntimeConnection, RuntimeFilter, RuntimeFilterValue,
159    RuntimeGraphCentralityAlgorithm, RuntimeGraphCentralityResult, RuntimeGraphCentralityScore,
160    RuntimeGraphClusteringResult, RuntimeGraphCommunity, RuntimeGraphCommunityAlgorithm,
161    RuntimeGraphCommunityResult, RuntimeGraphComponent, RuntimeGraphComponentsMode,
162    RuntimeGraphComponentsResult, RuntimeGraphCyclesResult, RuntimeGraphDegreeScore,
163    RuntimeGraphDirection, RuntimeGraphEdge, RuntimeGraphHitsResult,
164    RuntimeGraphNeighborhoodResult, RuntimeGraphNode, RuntimeGraphPath, RuntimeGraphPathAlgorithm,
165    RuntimeGraphPathResult, RuntimeGraphPattern, RuntimeGraphProjection,
166    RuntimeGraphTopologicalSortResult, RuntimeGraphTraversalResult, RuntimeGraphTraversalStrategy,
167    RuntimeGraphVisit, RuntimeIvfMatch, RuntimeIvfSearchResult, RuntimeQueryResult,
168    RuntimeQueryWeights, RuntimeStats, ScanCursor, ScanPage,
169};
170pub use crate::server::{RedDBServer, ServerOptions, ServerReplicationState};
171pub use reddb_file::{TimelineHistory, TimelineId};
172
173pub use crate::storage::*;