Skip to main content

Crate pjson_rs

Crate pjson_rs 

Source
Expand description

§PJS Core

Core types and protocols for the Priority JSON Streaming Protocol. This crate provides zero-copy JSON parsing, priority-based streaming, and schema-aware compression.

Re-exports§

pub use global_alloc::global_allocator_name;
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::ConfigError;
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::ByteCodec;
pub use compression::secure::CompressionQuality;
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 infrastructure::websocket::SecureWebSocketHandler;
pub use parser::LazyParser;
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 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
global_alloc
Process-wide global allocator registration.
infrastructure
Infrastructure layer - External concerns and adapters
parser
JSON parsing module: zero-copy lazy values, optional streaming partial-parse support, and the supporting buffer pool / aligned allocator infrastructure.
prelude
Re-export commonly used types
security
Security validation utilities
stream
Streaming system for PJS protocol

Macros§

gat_port
Macro for declaring GAT-based domain ports with async fn syntax
pjs_endpoint
Helper macro to easily add PJS to existing endpoints

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
Stream
Priority data stream entity

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
PathSegment
Single segment of a JsonPath.
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
SessionId
Type alias for session identifier
StreamId
Type alias for stream identifier