Per-Language Binding Guides¶
Contract-owning document for this chapter — each language's binding spec covers the public contract. This chapter is the entry point for picking a language and jumping to its guide.
zlink provides bindings in several languages on top of a C core. Each guide covers how to use zlink in that language — installation, idiomatic examples, type mapping, language-specific conventions. The messaging concepts themselves (socket patterns, transport, services, routing IDs) are language-neutral and are covered once, in the core guide; each language guide links back to the core guide wherever a concept is needed.
When working on a binding and explicitly using the current Core rather than a release package, follow building bindings against a local Core.
Reading Order¶
- You already know messaging / want to get moving fast → go straight to your language's guide. Follow the core links inline whenever a concept is unclear.
- Messaging is new to you → read the core overview and socket patterns first, then come to the language guide.
Choosing A Language¶
| Language | Usage guide | Generated API reference | Package |
|---|---|---|---|
| .NET | dotnet/ | docfx | Zlink |
| C++ | cpp/ | doxygen | zlink::cpp (CMake) |
| Java | java/ | javadoc | systems.zlink:zlink |
| Node | node/ | typedoc | @zlink-systems/zlink |
| Python | python/ | sphinx | zlink (PyPI) |
| Go | go/ | godoc | zlink.systems/zlink |
| Rust | rust/ | rustdoc | zlink (crates.io) |
| Kotlin | java/ §Kotlin | (shared with java) | systems.zlink:zlink |
| JavaScript | node/ §JavaScript | (shared with node) | @zlink-systems/zlink |
Kotlin and JavaScript share a runtime — Kotlin uses the Java binding (
systems.zlink.*) as-is, and JavaScript uses the Node binding (@zlink-systems/zlink) as-is. Since there's no separate native binding, each is covered in a dedicated section of the Java/Node guide. The core guide's language tabs also have separate Kotlin/JavaScript columns.C is the core itself, so instead of a separate binding guide, see the core C API guide.
Guide Structure (common to every language)¶
Each language guide is a single index document that covers only that
language's surface — installation, types, ownership, mapping table, deployment.
Messaging, service, and operations concepts are covered once in the core guide,
and the language guide's "See Also" section links out to those core documents.
| index section | Content |
|---|---|
| Installation | Package install · namespace |
| 5-minute example | First PING/ACK round trip |
| Core types | Context · Message · Received · RoutingId |
| Ownership and lifetime | Resource-release rules |
| Error handling | Per-operation exception/error types |
| C API mapping | C API ↔ language surface mapping |
| Native library / deployment | Bundling · load path · publishing |
| Samples | Sample project pointers |
| See Also | Links to the core guide's socket-pattern/service/operations chapters |
Per-socket-pattern usage, SPOT/Actor, options/TLS/monitoring/poller/timer, threading, and the like are now covered in the core guide, with per-language example tabs.