A Rust OpenVINO CPU backend for explicitly verified local model bundles.
Devino owns native library loading, device observation and bounded generation. zixcel-local-inference owns model identity, catalog/acquisition and runtime lifecycle. The caller owns the worker process and authorization; Devino creates no second store or daemon.
- Admit the complete native distribution and model identity independently.
- Spawn a dedicated Linux worker and attach
BackendProcessContextbefore native loading. Keep a hard deadline and cleanup in the external owner. - Supply exact
NativeLibrariespaths/hashes toOpenVinoRuntime::load. - Verify a complete
VerifiedModelBundle, then callOpenVinoCpu::load. - Generate with finite
GenerationOptionsand aGenerationControl.
Input, output and token budgets are bounded. CPU uses one inference thread and one stream. Errors have stable codes; cancellation does not grant a new budget. The native backend remains native code: Rust does not make model parsing or in-process cancellation a sandbox. See the interface.
Requires Rust 1.97 and Linux. Build/default tests use runtime linking, so no native SDK, model download or GPU is required:
CARGO_BUILD_JOBS=1 CARGO_INCREMENTAL=0 cargo test --locked -- --test-threads=1Development tests and explicit native acceptance are separate. The latter exercises Intel's real CPU runtime with a small, synthetic model: deterministic generation, actual token usage, output limits, pre-cancellation and reuse after cancellation. It does not establish useful language quality, arbitrary models, GPU compatibility or long-term leak freedom. No model weights or native runtime are bundled in the Rust package.
Use a reviewed preconverted OpenVINO GenAI bundle for text generation. The historical Python/PyTorch exporter, model downloads, system-install recipes and empty server scaffolding have been retired. Devino does not execute remote model code or force incompatible Optimum/Transformers dependencies.
For compatible conventional models, OpenVINO can read ONNX directly through Intel's Rust bindings, avoiding an intermediate IR export. This is distinct from converting arbitrary PyTorch/LLM models. See conversion alternatives for the evaluated APIs and limits. GPU activation and an HTTP model server are outside the supported Rust interface.
Getting started · source contract · security · Apache-2.0 · notices