Skip to content

한국어 | English

C++ binding spec · C++ binding guide

C++ bindings reference

The writing rules follow the Reference-writing guide (Korean-only). This is the bindings layer (the Core C ABI's language projection) — not the framework layer, which has its own reference tree under framework/doc/framework/cpp/reference/.

Categories follow the .NET binding spec's Contract Folder Layout as the common architecture map (the C++ binding spec projects it onto C++ naming, not a copy of the C# shape). As with dotnet's reference tree, this tree has five categories, not six — include/zlink/Contracts/ has no Service/ folder; SPOT/Actor exists only at the framework layer. Also as with dotnet, Contracts/'s prose lists files this directory listing doesn't have; the Contract-source column below is verified against find, not copied from spec prose.

Two C++-specific placement notes carried into every category below:

  • Two header trees exist. include/zlink/{core,eventing,message,socket}/api.h are extern "C" declarations — the low-level part-substrate layer for bindings implementers, not the public C++ contract. The public contract is include/zlink/Contracts/<Category>/*.hpp, aggregated by the single entry header <zlink.hpp>.
  • proxy lives in the Sockets category, not Core — it is a free function taking socket_t& (Contracts/Sockets/socket_contracts.hpp), unlike dotnet's Zlink static facade placement. There is no C++ equivalent of dotnet's Zlink.Sleep(...)/ Zlink.MultipartClose(...) free-function convenience helpers today.

Locale convention

Every bindings/doc/spec/<lang>/ document is English-original, Korean-translation (unlike the framework's interface-catalog convention). This reference tree follows the same direction: write .en.md first, .ko.md second, and every spec citation links to the same-locale spec file.

Category

Category Status Contract source (verified against include/zlink/Contracts/)
Core Drafted Contracts/Core/: context.hpp, context_options.hpp, routing_id.hpp, byte_count.hpp, capability.hpp, utilities.hpp
Messaging Drafted Contracts/Messaging/: message.hpp, received.hpp, topic_message.hpp, subscription_event.hpp, operation_contracts.hpp, request_result.hpp (lazy_message_parts.hpp and operation_builder_base.hpp are detail, no public entry)
Sockets Drafted Contracts/Sockets/: socket_contracts.hpp, message_socket_contracts.hpp, routed_socket_contracts.hpp, pubsub_socket_contracts.hpp, stream_socket.hpp, socket_options.hpp, results.hpp
Eventing Drafted Contracts/Eventing/: monitor.hpp, status.hpp, poller.hpp, poll_event.hpp, timers.hpp, events.hpp
Errors Drafted Contracts/Errors/: errors.hpp, results.hpp

This document tree is wired into mkdocs.yml nav.