Crate pjson_rs

Crate pjson_rs 

Source
Expand description

§PJS Core

Core types and protocols for the Priority JSON Streaming Protocol. This crate provides high-performance JSON parsing with SIMD optimizations, zero-copy operations, and semantic type hints for automatic optimization.

Re-exports§

pub use domain::StreamSession;
pub use domain::ports::EventPublisherGat;
pub use domain::ports::FrameSinkGat;
pub use domain::ports::FrameSinkGatExt;
pub use domain::ports::FrameSourceGat;
pub use domain::ports::StreamRepositoryGat;
pub use domain::ports::StreamStoreGat;
pub use domain::services::GatOrchestratorFactory;
pub use domain::services::GatStreamingOrchestrator;
pub use domain::services::HealthStatus;
pub use domain::services::OrchestratorConfig;
pub use domain::services::ValidationService;
pub use application::ApplicationError;
pub use application::ApplicationResult;
pub use application::commands;
pub use application::dto::SchemaDefinitionDto;
pub use application::dto::SchemaMetadataDto;
pub use application::dto::SchemaRegistrationDto;
pub use application::dto::ValidationErrorDto;
pub use application::dto::ValidationRequestDto;
pub use application::dto::ValidationResultDto;
pub use application::queries;
pub use config::ParserConfig;
pub use config::PjsConfig;
pub use config::SecurityConfig;
pub use config::SimdConfig;
pub use config::StreamingConfig;
pub use config::security::BufferLimits;
pub use config::security::JsonLimits;
pub use config::security::NetworkLimits;
pub use config::security::RateLimitingConfig;
pub use config::security::SessionLimits;
pub use compression::CompressedData;
pub use compression::CompressionConfig;
pub use compression::CompressionStrategy;
pub use compression::SchemaAnalyzer;
pub use compression::SchemaCompressor;
pub use compression::secure::DecompressionContextStats;
pub use compression::secure::SecureCompressedData;
pub use compression::secure::SecureCompressor;
pub use compression::secure::SecureDecompressionContext;
pub use error::Error;
pub use error::Result;
pub use frame::Frame;
pub use frame::FrameFlags;
pub use frame::FrameHeader;
pub use memory::ArenaJsonParser;
pub use memory::CombinedArenaStats;
pub use memory::JsonArena;
pub use parser::LazyParser;
pub use parser::ParseConfig;
pub use parser::ParseStats;
pub use parser::Parser;
pub use parser::SimpleParser;
pub use parser::SonicParser;
pub use parser::ZeroCopyParser;
pub use security::CompressionBombConfig;
pub use security::CompressionBombDetector;
pub use security::CompressionBombProtector;
pub use security::CompressionStats as BombCompressionStats;
pub use security::DepthTracker;
pub use security::RateLimitConfig;
pub use security::RateLimitError;
pub use security::RateLimitGuard;
pub use security::RateLimitStats;
pub use security::SecurityValidator;
pub use security::WebSocketRateLimiter;
pub use semantic::SemanticMeta;
pub use semantic::SemanticType;
pub use stream::CompressedFrame;
pub use stream::CompressionStats;
pub use stream::DecompressionMetadata;
pub use stream::DecompressionStats;
pub use stream::JsonReconstructor;
pub use stream::PriorityStreamer;
pub use stream::ProcessResult;
pub use stream::StreamConfig;
pub use stream::StreamFrame;
pub use stream::StreamProcessor;
pub use stream::StreamStats;
pub use stream::StreamingCompressor;
pub use stream::StreamingDecompressor;
pub use infrastructure::SchemaRepository;

Modules§

application
Application layer - Use cases and orchestration
compression
Schema-based compression for PJS protocol
config
Global configuration for PJS Core library
domain
Domain layer - Pure business logic
error
Error types for PJS operations
frame
Frame format and utilities for PJS protocol
infrastructure
Infrastructure layer - External concerns and adapters
memory
Memory management utilities for high-performance JSON processing
parser
High-performance JSON parsing module with hybrid approach
prelude
Re-export commonly used types
security
Security validation utilities
semantic
Semantic type hints for automatic optimization
stream
Streaming system for PJS protocol

Structs§

DomainFrame
Individual frame in a priority stream
JsonPath
Type-safe JSON Path for addressing nodes in JSON structures
Priority
Type-safe priority value (1-255 range)
PriorityDistribution
Distribution of frames by priority level
PriorityPercentages
Priority distribution as percentages (for demos and visualization)
SchemaId
Schema identifier for tracking and referencing schemas
SessionId
Unique identifier for streaming sessions
Stream
Priority data stream entity
StreamId
Unique identifier for streams within a session

Enums§

DomainError
Domain-specific errors
DomainEvent
Domain events that represent business-relevant state changes
JsonData
Domain-specific representation of JSON-like data This replaces serde_json::Value to maintain Clean Architecture principles
Schema
JSON Schema representation for validation
SchemaType
Simplified schema type for quick type checking
SchemaValidationError
Schema validation error with detailed context

Type Aliases§

DomainResult
Domain Result type
SchemaValidationResult
Schema validation result