Skip to content

1.1 Getting Started

Wiki Keeper (Grok Bot) edited this page Oct 26, 2026 · 6 revisions

Getting Started

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.

Features

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++.

Minimal usage

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(())
}

Environment variables

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

Local verification

./scripts/verify.sh              # fast (no C++)
./scripts/verify.sh --mode full  # needs C++ for zmq

REST contract: docs/rest-api.md. Wire profile: docs/wire-encoding.md.

Clone this wiki locally