#![forbid(unsafe_code)]
#![allow(dead_code)]
#![allow(unused_variables)]
#![allow(deprecated)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::type_complexity)]
#![allow(clippy::module_inception)]
pub mod domain;
pub mod application;
pub mod infrastructure;
pub mod error;
pub mod store;
pub mod security;
pub mod test_utils;
#[cfg(feature = "server")]
pub mod webhook_worker;
#[cfg(feature = "prime")]
pub mod prime;
#[cfg(feature = "embedded")]
pub mod embedded;
#[cfg(feature = "embedded")]
pub use embedded::EmbeddedCore;
pub use domain::{entities, entities::Event, repositories};
pub use application::{
dto::{IngestEventRequest, QueryEventsRequest},
services::{
AnalyticsEngine, ExactlyOnceConfig, ExactlyOnceRegistry, Pipeline, PipelineConfig,
PipelineManager, ProjectionManager, ReplayManager, SchemaEvolutionManager, SchemaRegistry,
},
};
#[cfg(feature = "server")]
pub use infrastructure::security::{AuthManager, Permission, Role};
#[cfg(feature = "server")]
pub use infrastructure::web::{WebSocketManager, serve};
pub use infrastructure::{
persistence::{
CompactionConfig, CompactionManager, EventIndex, ParquetStorage, SnapshotConfig,
SnapshotManager, WALConfig, WriteAheadLog,
},
security::RateLimiter,
};
pub use error::{AllSourceError, Result};
#[cfg(feature = "server")]
pub mod auth {
pub use crate::infrastructure::security::{AuthManager, Permission, Role};
}
pub mod rate_limit {
pub use crate::infrastructure::security::rate_limit::{RateLimitConfig, RateLimiter};
}
pub mod tenant {
pub use crate::domain::entities::{Tenant, TenantQuotas};
}
pub mod config {
pub use crate::infrastructure::config::*;
}
pub mod backup {
pub use crate::infrastructure::persistence::backup::*;
}
#[cfg(feature = "server")]
pub mod api_v1 {
pub use crate::infrastructure::web::api_v1::{AppState, AtomicNodeRole, NodeRole, serve_v1};
}
#[cfg(feature = "replication")]
pub mod replication {
pub use crate::infrastructure::replication::{
FollowerReplicationStatus, ReplicationMode, ReplicationStatus, WalReceiver, WalShipper,
};
}
#[cfg(not(feature = "replication"))]
pub mod replication {
pub use crate::infrastructure::replication::{
FollowerReplicationStatus, ReplicationMode, ReplicationStatus, WalReceiver, WalShipper,
};
}
pub mod cluster {
pub use crate::infrastructure::cluster::{
ClusterManager, ClusterMember, ClusterStatus, ConflictResolution, CrdtResolver,
GeoReplicationConfig, GeoReplicationManager, GeoReplicationStatus, GeoSyncRequest,
GeoSyncResponse, HlcTimestamp, HybridLogicalClock, MemberRole, MergeStrategy, Node,
NodeRegistry, PeerHealth, PeerRegion, PeerStatus, ReplicatedEvent, RequestRouter,
VersionVector, VoteRequest, VoteResponse,
};
}
#[cfg(feature = "server")]
pub mod resp {
pub use crate::infrastructure::resp::RespServer;
}
pub mod query {
#[cfg(feature = "analytics")]
pub use crate::infrastructure::query::eventql::{
EventQLRequest, EventQLResponse, execute_eventql,
};
pub use crate::infrastructure::query::{
geospatial::{
BoundingBox, Coordinate, GeoEventResult, GeoIndex, GeoQueryRequest, RadiusQuery,
execute_geo_query, haversine_distance,
},
graphql::{
GraphQLError, GraphQLRequest, GraphQLResponse, QueryField, event_to_json,
introspection_schema, parse_query,
},
};
}
pub use store::EventStore;
#[cfg(test)]
mod security_integration_tests;