1#![feature(impl_trait_in_assoc_type)]
8#![warn(rust_2018_idioms)]
9#![deny(unsafe_op_in_unsafe_fn)]
10#![allow(clippy::manual_div_ceil)]
12#![allow(clippy::only_used_in_recursion)]
13#![allow(dead_code)]
15
16#[cfg(feature = "mimalloc")]
18extern crate libmimalloc_sys;
19#[cfg(feature = "jemalloc")]
20extern crate tikv_jemalloc_sys;
21
22pub mod application;
23pub mod compression;
24pub mod config;
25pub mod domain;
26pub mod error;
27pub mod frame;
28pub mod infrastructure;
29pub mod memory;
30pub mod parser;
31pub mod security;
32pub mod semantic;
33pub mod stream;
34
35pub use domain::{
37 DomainError,
38 DomainEvent,
39 DomainResult,
40 Frame as DomainFrame,
41 JsonPath,
42 Priority,
43 SessionId,
44 Stream,
45 StreamId,
46 StreamSession,
47 ports::{
49 EventPublisherGat, FrameSinkGat, FrameSinkGatExt, FrameSourceGat, StreamRepositoryGat,
50 StreamStoreGat,
51 },
52 services::{
53 GatOrchestratorFactory, GatStreamingOrchestrator, HealthStatus, OrchestratorConfig,
54 ValidationService,
55 },
56 value_objects::{
57 JsonData, Schema, SchemaId, SchemaType, SchemaValidationError, SchemaValidationResult,
58 },
59};
60
61pub use domain::events::{PriorityDistribution, PriorityPercentages};
63
64pub use application::{
66 ApplicationError,
67 ApplicationResult,
68 commands,
69 dto::{
70 SchemaDefinitionDto, SchemaMetadataDto, SchemaRegistrationDto, ValidationErrorDto,
71 ValidationRequestDto, ValidationResultDto,
72 },
73 queries,
75 };
77
78pub use config::{
80 ParserConfig, PjsConfig, SecurityConfig, SimdConfig, StreamingConfig,
81 security::{BufferLimits, JsonLimits, NetworkLimits, RateLimitingConfig, SessionLimits},
82};
83
84pub use compression::{
86 CompressedData, CompressionConfig, CompressionStrategy, SchemaAnalyzer, SchemaCompressor,
87 secure::{
88 DecompressionContextStats, SecureCompressedData, SecureCompressor,
89 SecureDecompressionContext,
90 },
91};
92
93pub use error::{Error, Result};
95pub use frame::{Frame, FrameFlags, FrameHeader};
96#[cfg(any(feature = "websocket-client", feature = "websocket-server"))]
97pub use infrastructure::websocket::SecureWebSocketHandler;
98pub use memory::{ArenaJsonParser, CombinedArenaStats, JsonArena};
99pub use parser::{
100 LazyParser, ParseConfig, ParseStats, Parser, SimpleParser, SonicParser, ZeroCopyParser,
101};
102pub use security::{
103 CompressionBombConfig, CompressionBombDetector, CompressionBombProtector,
104 CompressionStats as BombCompressionStats, DepthTracker, RateLimitConfig, RateLimitError,
105 RateLimitGuard, RateLimitStats, SecurityValidator, WebSocketRateLimiter,
106};
107pub use semantic::{SemanticMeta, SemanticType};
108pub use stream::{
109 CompressedFrame, CompressionStats, DecompressionMetadata, DecompressionStats,
110 JsonReconstructor, PriorityStreamer, ProcessResult, StreamConfig, StreamFrame, StreamProcessor,
111 StreamStats, StreamingCompressor, StreamingDecompressor,
112};
113pub mod prelude {
121 pub use super::{
122 ApplicationError,
123 ApplicationResult,
125 DomainError,
127 DomainEvent,
128 DomainFrame,
129 DomainResult,
131 Error,
133 Frame,
134 FrameFlags,
135 FrameHeader,
136 JsonData,
137 JsonPath,
138 JsonReconstructor,
140 Priority,
141 PriorityDistribution,
142 PriorityPercentages,
143 ProcessResult,
145 Result,
147 Schema,
148 SchemaId,
149 SchemaRepository,
150 SchemaType,
151 SchemaValidationError,
152 SemanticMeta,
153 SemanticType,
154 SessionId,
155 Stream,
157 StreamId,
158 StreamProcessor,
159 StreamSession,
160 ValidationService,
162 };
163}
164
165pub use infrastructure::SchemaRepository;