PolyCall

PolyCall

polycall is a program-first cross-language runtime: one C CLI (polycall) and one wire protocol (polycall_rpc v1), reached identically from every language client. A caller sends a service name, an operation name, and a JSON input; the runtime routes it to whichever process registered that service.operation and returns a typed JSON result or a structured error — regardless of which language implements the operation.

polycall [global-options] <command> [subcommand] [arguments]

A concrete example, exercised by this repository's own test suite: the built-in inventory.get operation is reached identically from the C CLI and from Node.js and Python reference clients (tools/rpc-clients/) talking to the same running instance over TCP — not three separate reimplementations.

What's actually in this repository

Verified

Built, run, and checked against a real polycall binary this session (tests/cli/contract.sh, tests/runtime/roundtrip.sh, tests/conformance/run.sh), or exercised directly at a terminal.

Registered, not yet implemented

The CLI recognizes the command and returns a definite, honest error (never a stub that pretends to succeed) — see the exit-code table in the CLI reference.

Area Status
help, version, doctor, --format json Verified
config validate/config show against a legacy Polycallfile, or a native C/Node/Python provider Verified
start/status/stop/call over polycall_rpc v1, including start --load PATH operation plugins Verified
telemetry emit/show/status (GUID + timestamp correlated events, auto-emitted by start/call) Verified
Cross-language reference clients: Node.js, Python, Go, Java (tools/rpc-clients/) Verified
config migrate (legacy → native envelope) Verified
A packaged, installable per-language client SDK (npm, PyPI, Maven, ...) shipped from this repository Not implemented here — published as separate packages under the obinexus org

Where to go next

Deeper technical reference (wire protocol byte layout, plugin ABI, concurrency model, conformance results) lives at docs/ — start there for the full reference set.