#![feature(impl_trait_in_assoc_type)]
#![cfg_attr(feature = "metrics", feature(once_cell_try))]
#![warn(rust_2018_idioms)]
#![deny(unsafe_op_in_unsafe_fn)]
#![allow(clippy::manual_div_ceil)] #![allow(clippy::only_used_in_recursion)]
pub mod application;
pub mod compression;
pub mod config;
pub mod domain;
pub mod error;
pub mod frame;
pub mod global_alloc;
pub mod infrastructure;
pub mod memory;
pub mod parser;
pub mod security;
pub mod semantic;
pub mod stream;
pub use global_alloc::global_allocator_name;
pub use domain::{
DomainError,
DomainEvent,
DomainResult,
Frame as DomainFrame,
JsonPath,
Priority,
SessionId,
Stream,
StreamId,
StreamSession,
ports::{
EventPublisherGat, FrameSinkGat, FrameSinkGatExt, FrameSourceGat, StreamRepositoryGat,
StreamStoreGat,
},
services::{
GatOrchestratorFactory, GatStreamingOrchestrator, HealthStatus, OrchestratorConfig,
ValidationService,
},
value_objects::{
JsonData, Schema, SchemaId, SchemaType, SchemaValidationError, SchemaValidationResult,
},
};
pub use domain::events::{PriorityDistribution, PriorityPercentages};
pub use application::{
ApplicationError, ApplicationResult, commands,
dto::{
SchemaDefinitionDto, SchemaMetadataDto, SchemaRegistrationDto, ValidationErrorDto,
ValidationRequestDto, ValidationResultDto,
},
queries,
};
pub use config::{
ConfigError, ParserConfig, PjsConfig, SecurityConfig, SimdConfig, StreamingConfig,
security::{BufferLimits, JsonLimits, NetworkLimits, RateLimitingConfig, SessionLimits},
};
pub use compression::{
CompressedData, CompressionConfig, CompressionStrategy, SchemaAnalyzer, SchemaCompressor,
secure::{
ByteCodec, CompressionQuality, DecompressionContextStats, SecureCompressedData,
SecureCompressor, SecureDecompressionContext,
},
};
pub use error::{Error, Result};
pub use frame::{Frame, FrameFlags, FrameHeader};
#[cfg(any(feature = "websocket-client", feature = "websocket-server"))]
pub use infrastructure::websocket::SecureWebSocketHandler;
pub use memory::{CombinedArenaStats, JsonArena};
pub use parser::{
LazyParser, ParseConfig, ParseStats, Parser, SimpleParser, SonicParser, ZeroCopyParser,
};
pub use security::{
CompressionBombConfig, CompressionBombDetector, CompressionBombProtector,
CompressionStats as BombCompressionStats, DepthTracker, RateLimitConfig, RateLimitError,
RateLimitGuard, RateLimitStats, SecurityValidator, WebSocketRateLimiter,
};
pub use semantic::{SemanticMeta, SemanticType};
pub use stream::{
CompressedFrame, CompressionStats, DecompressionMetadata, DecompressionStats,
JsonReconstructor, PriorityStreamer, ProcessResult, StreamConfig, StreamFrame, StreamProcessor,
StreamStats, StreamingCompressor, StreamingDecompressor,
};
pub mod prelude {
pub use super::{
ApplicationError, ApplicationResult, DomainError, DomainEvent, DomainFrame, DomainResult,
Error, Frame, FrameFlags, FrameHeader, JsonData, JsonPath, JsonReconstructor, Priority,
PriorityDistribution, PriorityPercentages, ProcessResult, Result, Schema, SchemaId,
SchemaRepository, SchemaType, SchemaValidationError, SemanticMeta, SemanticType, SessionId,
Stream, StreamId, StreamProcessor, StreamSession, ValidationService,
};
}
pub use infrastructure::SchemaRepository;