Repository navigation
1.1 Getting Started
Wiki Keeper (Grok Bot) edited this page Oct 26, 2026
·
6 revisions
Install from crates.io or path; MSRV 1.85, edition 2024 (since #69; 0.2.0 declared 1.99.0 and was yanked).
[dependencies]
corpus-ipc = "0.2"
# optional:
# corpus-ipc = { version = "0.2", features = ["zmq"] }
# corpus-ipc = { version = "0.2", features = ["server"] }
# corpus-ipc = { version = "0.2", features = ["server", "zmq"] }The README snippets moved to "0.2" in #62. crates.io has 0.1.0, a yanked 0.2.0, and 0.2.1 (published 2026-10-26), so "0.2" resolves to 0.2.1 for a new lockfile.
| Feature | Default | Enables |
|---|---|---|
| (none) | yes | Wire models + RustBackend
|
zmq |
no |
ZmqIpcBackend (vendored libzmq; needs a C++ compiler) |
server |
no |
corpus_ipc_server Axum 0.8 REST binary + corpus_ipc::server
|
If zmq builds fail to find C++ headers under clang, use CC=gcc CXX=g++.
use corpus_ipc::{BackendFactory, BackendType, IpcBackend};
fn main() -> Result<(), corpus_ipc::BackendError> {
let mut backend = BackendFactory::create(BackendType::Rust);
backend.initialize(None)?;
let out = backend.process_batch(&[1.0, -0.5])?;
println!("{out:?}");
Ok(())
}| Variable | Default | Used by |
|---|---|---|
CORPUS_IPC_BIND |
127.0.0.1:8080 |
corpus_ipc_server |
CORPUS_IPC_BACKEND_TYPE |
Rust | server (zmq when feature enabled) |
CORPUS_IPC_ZMQ_READOUT_IPC |
ipc:///tmp/corpus_ipc_readout.ipc |
ZmqIpcBackend |
CORPUS_IPC_ZMQ_MAX_READOUT_FLOATS |
1024 |
readout parser |
CORPUS_IPC_ZMQ_RECONNECT_IVL_MS |
100 |
libzmq reconnect |
CORPUS_IPC_ZMQ_RECONNECT_IVL_MAX_MS |
5000 |
libzmq reconnect max |
./scripts/verify.sh # fast (no C++)
./scripts/verify.sh --mode full # needs C++ for zmqREST contract: docs/rest-api.md. Wire profile: docs/wire-encoding.md.
- 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