pjson_rs/
lib.rs

1//! # PJS Core
2//!
3//! Core types and protocols for the Priority JSON Streaming Protocol.
4//! This crate provides high-performance JSON parsing with SIMD optimizations,
5//! zero-copy operations, and semantic type hints for automatic optimization.
6
7#![feature(impl_trait_in_assoc_type)]
8#![warn(rust_2018_idioms)]
9#![deny(unsafe_op_in_unsafe_fn)]
10// Allow some non-critical clippy warnings for production code
11#![allow(clippy::manual_div_ceil)]
12#![allow(clippy::only_used_in_recursion)]
13// Allow dead code for fields and methods that will be used in future features
14#![allow(dead_code)]
15
16pub mod application;
17pub mod compression;
18pub mod config;
19pub mod domain;
20pub mod error;
21pub mod frame;
22pub mod infrastructure;
23pub mod parser;
24pub mod semantic;
25pub mod stream;
26
27// Domain layer exports
28pub use domain::{
29    DomainError, DomainEvent, DomainResult, Frame as DomainFrame, JsonPath, Priority, SessionId,
30    Stream, StreamId, StreamSession,
31};
32
33// Events exports  
34pub use domain::events::{PriorityDistribution, PriorityPercentages};
35
36// Application layer exports
37pub use application::{
38    ApplicationError, ApplicationResult, commands,
39    handlers::{CommandHandler, QueryHandler},
40    queries,
41    services::{SessionService, StreamingService},
42};
43
44// Configuration exports
45pub use config::{ParserConfig, PjsConfig, SimdConfig, StreamingConfig};
46
47// Compression exports
48pub use compression::{
49    CompressedData, CompressionConfig, CompressionStrategy, SchemaAnalyzer, SchemaCompressor,
50};
51
52// Streaming exports
53pub use stream::{
54    CompressedFrame, CompressionStats, DecompressionMetadata, DecompressionStats,
55    ProcessResult, StreamConfig, StreamFrame, StreamProcessor, StreamStats,
56    StreamingCompressor, StreamingDecompressor, PriorityStreamer, JsonReconstructor,
57};
58pub use error::{Error, Result};
59pub use frame::{Frame, FrameFlags, FrameHeader};
60pub use parser::{ParseConfig, ParseStats, Parser};
61pub use semantic::{SemanticMeta, SemanticType};
62// Legacy stream exports (will be deprecated)
63// pub use stream::{
64//     JsonPath as StreamJsonPath, JsonReconstructor, Priority as StreamPriority, PriorityStreamer,
65//     ProcessResult, StreamFrame, StreamProcessor, StreamerConfig,
66// };
67
68/// Re-export commonly used types
69pub mod prelude {
70    pub use super::{
71        ApplicationError,
72        // Application layer
73        ApplicationResult,
74        CommandHandler,
75        DomainError,
76        DomainEvent,
77        DomainFrame,
78        // Domain layer
79        DomainResult,
80        // Core types
81        Error,
82        Frame,
83        FrameFlags,
84        FrameHeader,
85        JsonPath,
86        // TODO: Re-add when legacy modules are reconciled
87        JsonReconstructor,
88        Priority,
89        PriorityDistribution,
90        PriorityPercentages,
91        // PriorityStreamer,
92        ProcessResult,
93        QueryHandler,
94        Result,
95        SemanticMeta,
96        SemanticType,
97        SessionId,
98        SessionService,
99        Stream,
100        StreamId,
101        StreamProcessor,
102        StreamSession,
103        StreamingService,
104    };
105}