1#![feature(impl_trait_in_assoc_type)]
8#![cfg_attr(feature = "metrics", feature(once_cell_try))]
9#![warn(rust_2018_idioms)]
10#![warn(missing_docs)]
11#![deny(unsafe_op_in_unsafe_fn)]
12#![allow(clippy::manual_div_ceil)] #![allow(clippy::only_used_in_recursion)] pub mod application;
18pub mod compression;
19pub mod config;
20pub mod domain;
21pub mod error;
22pub mod frame;
23pub mod global_alloc;
24pub mod infrastructure;
25pub mod memory;
26pub mod parser;
27pub mod security;
28pub mod semantic;
29pub mod stream;
30
31pub use global_alloc::global_allocator_name;
33
34pub use domain::{
36 DomainError,
37 DomainEvent,
38 DomainResult,
39 Frame as DomainFrame,
40 JsonPath,
41 Priority,
42 SessionId,
43 Stream,
44 StreamId,
45 StreamSession,
46 ports::{
48 EventPublisherGat, FrameSinkGat, FrameSinkGatExt, FrameSourceGat, StreamRepositoryGat,
49 StreamStoreGat,
50 },
51 services::{
52 GatOrchestratorFactory, GatStreamingOrchestrator, HealthStatus, OrchestratorConfig,
53 ValidationService,
54 },
55 value_objects::{
56 JsonData, Schema, SchemaId, SchemaType, SchemaValidationError, SchemaValidationResult,
57 },
58};
59
60pub use domain::events::{PriorityDistribution, PriorityPercentages};
62
63pub use application::{
65 ApplicationError, ApplicationResult, commands,
66 dto::{
67 SchemaDefinitionDto, SchemaMetadataDto, SchemaRegistrationDto, ValidationErrorDto,
68 ValidationRequestDto, ValidationResultDto,
69 },
70 queries,
71};
72
73pub use config::{
75 ConfigError, ParserConfig, PjsConfig, SecurityConfig, SimdConfig, StreamingConfig,
76 security::{BufferLimits, JsonLimits, NetworkLimits, RateLimitingConfig, SessionLimits},
77};
78
79pub use compression::{
81 CompressedData, CompressionConfig, CompressionStrategy, SchemaAnalyzer, SchemaCompressor,
82 secure::{
83 ByteCodec, CompressionQuality, DecompressionContextStats, SecureCompressedData,
84 SecureCompressor, SecureDecompressionContext,
85 },
86};
87
88pub use error::{Error, Result};
90pub use frame::{Frame, FrameFlags, FrameHeader};
91#[cfg(any(feature = "websocket-client", feature = "websocket-server"))]
92pub use infrastructure::websocket::SecureWebSocketHandler;
93pub use memory::{CombinedArenaStats, JsonArena};
94pub use parser::{
95 LazyParser, ParseConfig, ParseStats, Parser, SimpleParser, SonicParser, ZeroCopyParser,
96};
97pub use security::{
98 CompressionBombConfig, CompressionBombDetector, CompressionBombProtector,
99 CompressionStats as BombCompressionStats, DepthTracker, RateLimitConfig, RateLimitError,
100 RateLimitGuard, RateLimitStats, SecurityValidator, WebSocketRateLimiter,
101};
102pub use semantic::{SemanticMeta, SemanticType};
103pub use stream::{
104 CompressedFrame, CompressionStats, DecompressionMetadata, DecompressionStats,
105 JsonReconstructor, PriorityStreamer, ProcessResult, StreamConfig, StreamFrame, StreamProcessor,
106 StreamStats, StreamingCompressor, StreamingDecompressor,
107};
108
109pub mod prelude {
111 pub use super::{
112 ApplicationError, ApplicationResult, DomainError, DomainEvent, DomainFrame, DomainResult,
113 Error, Frame, FrameFlags, FrameHeader, JsonData, JsonPath, JsonReconstructor, Priority,
114 PriorityDistribution, PriorityPercentages, ProcessResult, Result, Schema, SchemaId,
115 SchemaRepository, SchemaType, SchemaValidationError, SemanticMeta, SemanticType, SessionId,
116 Stream, StreamId, StreamProcessor, StreamSession, ValidationService,
117 };
118}
119
120pub use infrastructure::SchemaRepository;