Repository navigation
5.3 WireCompatibility and Envelope Decoding
Wiki Keeper (Grok Bot) edited this page Oct 15, 2026
·
2 revisions
Fail-closed wire-schema gating in src/compatibility.rs. Crate semver (CARGO_PKG_VERSION) is independent of on-wire wire_version.
| Constant | Value |
|---|---|
WireCompatibility::CURRENT |
1 |
WireCompatibility::MIN_SUPPORTED |
1 |
WireCompatibility::LEGACY_UNVERSIONED |
1 |
-
classify_wire_version/WireCompatibility::classify→Compatibility::{Supported, TooOld, TooNew} -
accept_wire_version→SupportedWireVersionorCompatibilityError::TooOld{found, min}/TooNew{found, current}
-
decode_ipc_message_json(&[u8])/decode_ipc_message_value(Value)— inspectwire_versionbefore payload use; legacy unversioned tagged JSON accepted as wire v1. -
encode_ipc_message_json— non-canonical convenience encode (not the fixture generator). - Canonical deterministic encode:
encode_canonical_ipc_message.
- Unknown fields ignored on structs and the top-level envelope.
- Unknown
IpcMessagevariants fail deserialization (noDefault, no catch-all). - Missing
wire_version→ treat asLEGACY_UNVERSIONED.
-
CompatibilityError— version window miss -
EnvelopeError— wraps compatibility errors plus parse failures (NotAnObject, missing keys, payload/JSON errors)
See also 5.4 Canonical Wire-v1 Encoding.
- 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