nats
| Kind | ffi-zig |
|---|---|
| Capabilities | ffi net |
| Categories | messaging networking ffi |
| Keywords | nats messaging pubsub queue streaming |
NATS client for Kit using native Zig FFI
Files
| File | Description |
|---|---|
.editorconfig | Editor formatting configuration |
.gitignore | Git ignore rules for build artifacts and dependencies |
.tool-versions | asdf tool versions (Zig, Kit) |
LICENSE | MIT license file |
README.md | This file |
examples/basic.kit | Basic usage example |
examples/pubsub.kit | Example: pubsub |
examples/queue-groups.kit | Example: queue groups |
examples/request-reply.kit | Example: request reply |
kit.toml | Package manifest with metadata and dependencies |
src/nats.kit | NATS error type for typed error handling. |
tests/nats.test.kit | Tests for nats |
zig/kit_ffi.zig | Zig FFI module for kit ffi |
zig/nats.zig | Zig FFI module for nats |
Architecture
Pub/Sub Pattern
sequenceDiagram
participant Publisher
participant NATS Server
participant Subscriber1
participant Subscriber2
Subscriber1->>NATS Server: Subscribe "events.*"
Subscriber2->>NATS Server: Subscribe "events.*"
Publisher->>NATS Server: Publish "events.user"
NATS Server->>Subscriber1: Message
NATS Server->>Subscriber2: Message
Request/Reply Pattern
sequenceDiagram
participant Requester
participant NATS Server
participant Responder
Responder->>NATS Server: Subscribe "service.api"
Requester->>NATS Server: Request "service.api"
NATS Server->>Responder: Message + Reply Subject
Responder->>NATS Server: Publish to Reply Subject
NATS Server->>Requester: Response
FFI Structure
graph TD
A[Kit Code] -->|import Nats| B[src/main.kit]
B -->|extern-zig| C[zig/nats.zig]
C --> D[zig/kit_ffi.zig]
D --> E[NATS Protocol]
E --> F[NATS Server]
Dependencies
No Kit package dependencies.
Installation
kit add gitlab.com/kit-lang/packages/kit-nats.gitUsage
import Kit.NatsLicense
MIT License - see LICENSE for details.
Exported Functions & Types
NatsError
NATS error type for typed error handling. Variants distinguish between connection and command errors.
Variants
NatsConnectionError {message}NatsCommandError {message}