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.