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§
- Domain
Frame - Individual frame in a priority stream
- Json
Path - Type-safe JSON path for addressing nodes in JSON structures.
- Priority
- Type-safe priority value (1-255 range)
- Priority
Distribution - Distribution of frames by priority level
- Priority
Percentages - Priority distribution as percentages (for demos and visualization)
- Schema
Id - Schema identifier for tracking and referencing schemas
- Stream
- Priority data stream entity
Enums§
- Domain
Error - Domain-specific errors
- Domain
Event - Domain events that represent business-relevant state changes
- Json
Data - Domain-specific representation of JSON-like data This replaces serde_json::Value to maintain Clean Architecture principles
- Path
Segment - Single segment of a
JsonPath. - Schema
- JSON Schema representation for validation
- Schema
Type - Simplified schema type for quick type checking
- Schema
Validation Error - Schema validation error with detailed context
Type Aliases§
- Domain
Result - Domain Result type
- Schema
Validation Result - Schema validation result
- Session
Id - Type alias for session identifier
- Stream
Id - Type alias for stream identifier