The API and the packages¶
The engine serves a local gRPC API, defined in
arvo-engine-api: protos in
protos/, and bindings generated from them and published under one version.
| Package | What |
|---|---|
arvo-api (crates.io) |
the messages, with serde; no transport, builds for WebAssembly |
arvo-client (crates.io) |
the service stubs, engine discovery (engine.json, control.json), the token helper |
arvo-client (PyPI), module arvo |
a research client and the generated stubs for every service |
Two tiers¶
| Token | File | Reaches |
|---|---|---|
| research | engine.json |
the Research service: strategies, instruments, findings, studies, walk-forwards, the library's bars and their regimes, comparisons, reported evidence. What an agent or a script gets |
| control | control.json |
everything else: ResearchFiles, Market (fetching, sources, the watchlist, quotes), Accounts, Portfolio, Platform (plugins, jobs, events), Sessions, Scripts. What a person's front end gets |
A refusal is a gRPC status, never a message with an error field. Field numbers are the contract; a removed field's number is reserved. Versioning follows semver from an existing client's point of view — see VERSIONING.md and the changelog.