Language integration

Support matrix

Language Status Evidence
Python Verified examples/python-math/provider.py — full wire-protocol client, standard library only. Walked through in Your first Python call.
C Verified examples/quickstart-math/math_provider.c — uses the public polycall_provider_* API. See below.
Node, Lua, Go, Java, COBOL Not implemented Valid values for [service.ID].language in the Polycallfile schema (CFG-006), and the mandatory/optional language set named in BND-023. No working example, SDK, or installable package exists for any of them in this repository today.

No bindings/ directory currently exists

Earlier project material (the original README, a demo recording) describes a unified bindings/ directory with per-language packages, including a zig-polycall. main has no bindings/ directory at all — ls bindings/ fails. If you're looking for that structure, see the migration guide; do not assume any of it is present today.

A [service.ID].language value is informational only — see Polycallfile reference. It does not gate who is allowed to register for that service's methods.

Python

Covered fully in Your first Python call. Summary of what the example does not need: no pip packages, no async framework, no code generation. It implements the frame/envelope/tagged-value wire format from LPV1-06 directly in ~300 lines, obtaining connection parameters via polycall config show --json rather than parsing the Polycallfile itself.

Known limitation, stated directly in examples/python-math/README.md: this is a synchronous, single-connection script, not the full async client/provider API BND-009 eventually specifies (event-loop integration, packaging, a pip-installable distribution). It's a complete implementation of the wire protocol for this one demonstration, not a stub — but it's also not a reusable library you'd pip install yet.

C

examples/quickstart-math/math_provider.c demonstrates the same math.add registration using the public C provider API instead of a hand-rolled wire client — see C library and ABI for the exact four functions it uses. Run it in place of provider.py in terminal 2 of Your first Python call:

.\bin\math-provider.exe .\Polycallfile
./bin/math-provider ./Polycallfile

Both the C and Python providers can register against the same Polycallfile; [service.math].language = "python" does not prevent the C provider from registering math.add too (see the note above). The C example's own README additionally documents (and this session confirmed the underlying transport-level fix behind it, see Your first Python call): authorization denial when a grant lacks "register", exact i64 round-tripping at the signed 64-bit boundary, and rejecting overflow before it happens (checked in C before the addition, since signed integer overflow is undefined behavior).

What "future applications" claims to treat with caution

Earlier project material names COBOL/mainframe integration, financial services, games, and IoT/edge computing as target use cases. These remain proposed directions, not demonstrated capabilities: nothing in this repository currently connects to a COBOL system, a game engine, or an edge deployment. Treat them as roadmap context, not as documentation of existing support.