Skip to content

한국어 | English

Java binding spec · Java binding guide

Java 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/java/reference/. Kotlin shares this same bindings runtime (no separate bindings/kotlin/ contract source exists — only bindings/kotlin/samples/), so this tree also serves as Kotlin's bindings-layer reference.

Categories follow the .NET binding spec's Contract Folder Layout as the common architecture map. As with dotnet and cpp, this tree has five categories, not six — systems.zlink.contracts has no service package; SPOT/Actor exists only at the framework layer. The Contract-source column below is verified against the actual package listing, not copied from spec prose.

Two Java-specific notes carried into every category below:

  • Several files under contracts/ are package-private, not public contract, even though they live in a public package (ContractAccess.RoutingIdAccess-style internal registration hooks, and specific overloads like Zlink.sleep(int)/Zlink.errno()/Zlink.multipartClose(Message[]) that have no public modifier — only Zlink.sleep(Duration) is public). Each entry below states explicitly which overloads are actually reachable.
  • Options facades are concrete classes constructed with a public constructor (new ContextOptions(context)), not obtained only through a property/method the way dotnet's IContext.Options works — though Context.options() also exists and is the normal path.

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 systems.zlink.contracts/)
Core Drafted contracts/core/: Context.java, ContextOptions.java, ContextOption.java, RoutingId.java, Zlink.java, ZlinkVersion.java, AtomicCounter.java, ZlinkStopwatch.java, ZlinkThread.java
Messaging Drafted contracts/messaging/: Message.java, Received.java, ReplyToken.java, StreamPacket.java, TopicMessage.java, SubscriptionEvent.java, SubscriptionEntry.java, SendOperation.java, SendSubmitOperation.java, RequestOperation.java, RequestSubmitOperation.java, TimeoutSubmitOperation.java, ReplyOperation.java, ReplySubmitOperation.java, MessageBuilderStage.java
Sockets Drafted contracts/sockets/: Socket.java, StreamSocket.java, MessageSocketContracts/{PairSocket,DealerSocket}.java, RoutedSocketContracts/RouterSocket.java, PubSubSocketContracts/{PubSocket,SubSocket,XPubSocket,XSubSocket}.java, SocketOptionFacades/*.java, SocketEnums/*.java
Eventing Drafted contracts/eventing/: Poller.java, ZlinkTimer.java, SocketMonitor.java, EventEnums/*.java, EventModels/*.java
Errors Drafted contracts/errors/: ErrorCategory.java, Errors/*.java (exception classes + result enums)

This document tree is wired into mkdocs.yml nav.