Repository navigation
5 Validation and Wire Compatibility
Wiki Keeper (Grok Bot) edited this page Oct 15, 2026
·
2 revisions
Ingress is fail-closed: payloads must pass wire-version classification and Validate / ProtocolLimits before use. Modules: src/validation/, src/compatibility.rs, src/canonical_ser.rs.
- 5.1 Validation Framework and ProtocolLimits
- 5.2 ValidationError and ValidationKind
- 5.3 WireCompatibility and Envelope Decoding
- 5.4 Canonical Wire-v1 Encoding (new since last wiki refresh)
flowchart TB
Raw["Raw JSON bytes"] --> Decode["decode_ipc_message_json"]
Decode --> Classify["classify / accept wire_version"]
Classify -->|TooOld / TooNew| Reject1["EnvelopeError / CompatibilityError"]
Classify -->|Supported or legacy unversioned as v1| Payload["Deserialize IpcMessage"]
Payload --> Val["Validate::validate ProtocolLimits::DEFAULT"]
Val -->|ValidationError| Reject2["Fail-closed"]
Val -->|Ok| Ready["Ready for consumers"]
Ready --> Canon["encode_canonical_ipc_message optional"]
WireCompatibility::CURRENT and MIN_SUPPORTED are both 1. Unversioned pre-envelope JSON is accepted as LEGACY_UNVERSIONED (1). Unknown struct fields are ignored; unknown IpcMessage variants never default.
- Home
- 1. Overview
- 1.1. Getting Started
- 1.2. Architecture Overview
- 1.3. Crate Exports and Module Map
- 2. Core Abstractions
- 2.1. IpcBackend Trait
- 2.2. HybridFlowBackend Trait
- 2.3. BackendFactory and BackendType
- 2.4. Error Handling
- 3. Backend Implementations
- 3.1. RustBackend
- 3.2. ZmqIpcBackend
- 3.3. ZMQ Readout Parsing and Golden Frames
- 3.4. Structured ZeroMQ IpcMessage Transport
- 4. IPC Protocol and Data Models
- 4.1. IpcMessage Protocol
- 4.2. Batch Data Types
- 4.3. NeuromodulatorSnapshot and Neuromodulator Packet
- 4.4. StimulusBatch and Runtime Ingress
- 4.5. Deserialization Hooks and Model Compat Aliases
- 5. Validation and Wire Compatibility
- 5.1. Validation Framework and ProtocolLimits
- 5.2. ValidationError and ValidationKind
- 5.3. WireCompatibility and Envelope Decoding
- 5.4. Canonical Wire-v1 Encoding
- 6. corpus_ipc_server HTTP Server
- 6.1. REST API Endpoints
- 6.2. Server Configuration and Deployment
- 7. Build, Dependencies, and Quality Gates
- 7.1. Cargo Features and Dependency Isolation
- 7.2. Testing Strategy
- 7.2.1. Wire-v1 Golden Test Vectors
- 7.2.2. Property-Based Wire Tests
- 7.3. CI, Coverage, and Release Qualification
- 8. Project History and Licensing
- 8.1. Naming History and Completed Renames
- 8.2. Licensing
- 9. Glossary