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)] #![allow(clippy::only_used_in_recursion)] #[cfg(feature = "mimalloc")]
17extern crate libmimalloc_sys;
18#[cfg(feature = "jemalloc")]
19extern crate tikv_jemalloc_sys;
20
21pub mod application;
22pub mod compression;
23pub mod config;
24pub mod domain;
25pub mod error;
26pub mod frame;
27pub mod infrastructure;
28pub mod memory;
29pub mod parser;
30pub mod security;
31pub mod semantic;
32pub mod stream;
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 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 DecompressionContextStats, SecureCompressedData, SecureCompressor,
84 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::{ArenaJsonParser, 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;