Skip to content

Package Reference

All packages are fully documented on pkg.go.dev.

Installation

go get github.com/DaniDeer/go-codex@latest

Go 1.26+ required.

Quick import reference

What Import path
Core codecs github.com/DaniDeer/go-codex/codex
Format bridges (JSON, YAML, TOML, Gob, Binary) github.com/DaniDeer/go-codex/format
Built-in constraints github.com/DaniDeer/go-codex/validate
REST API builder github.com/DaniDeer/go-codex/api/rest
Event channel builder github.com/DaniDeer/go-codex/api/events
Request-reply route builder (ZMQ, MQTT 5, …) github.com/DaniDeer/go-codex/api/reqreply
MCP server builder github.com/DaniDeer/go-codex/api/mcp
net/http adapter (server + client) github.com/DaniDeer/go-codex/adapters/nethttp
chi adapter github.com/DaniDeer/go-codex/adapters/chi
Paho MQTT 3.1.1 adapter github.com/DaniDeer/go-codex/adapters/mqtt
MQTT 5.0 adapter github.com/DaniDeer/go-codex/adapters/mqtt5
ZeroMQ adapter (PUB/SUB, REQ/REP, DEALER/ROUTER) github.com/DaniDeer/go-codex/adapters/zeromq
SQL adapter (goose migrations + codec validation) github.com/DaniDeer/go-codex/adapters/sql
Redis cache adapter (typed) github.com/DaniDeer/go-codex/adapters/redis
WebSocket adapter (server-side, duplex sessions) github.com/DaniDeer/go-codex/adapters/websocket
File IO adapter (ports bindings) github.com/DaniDeer/go-codex/adapters/file
mark3labs/mcp-go adapter github.com/DaniDeer/go-codex/adapters/mcpgo
REST-client-to-MCP-tool bridge github.com/DaniDeer/go-codex/adapters/mcprest
OpenAI-compatible Chat Completions adapter github.com/DaniDeer/go-codex/adapters/openai
templ SSR format plug-in github.com/DaniDeer/go-codex/adapters/templ
OpenAPI 3.1 renderer github.com/DaniDeer/go-codex/render/openapi
AsyncAPI 3.0 renderer github.com/DaniDeer/go-codex/render/asyncapi/v3
AsyncAPI 2.6 renderer (frozen) github.com/DaniDeer/go-codex/render/asyncapi/v2
Forge pipelines (governed, batch) github.com/DaniDeer/go-codex/forge
Reactive stream pipelines github.com/DaniDeer/go-codex/stream
HTTP route descriptors github.com/DaniDeer/go-codex/route
Declarative security/Transform middleware (shared by rest/events/reqreply) github.com/DaniDeer/go-codex/middleware
Schema model github.com/DaniDeer/go-codex/schema
Env-var config loading (FromEnv/FromEnvVar) github.com/DaniDeer/go-codex/config
Application lifecycle (context, supervised goroutines, shutdown) github.com/DaniDeer/go-codex/app
Protocol-agnostic IO ports (Source/Sink/IO/Latest/Tool/Duplex) github.com/DaniDeer/go-codex/ports
Observer interfaces github.com/DaniDeer/go-codex/stats

Core

Package Description pkg.go.dev
codex ⭐ Public API: Codec[T], primitives, struct, union, slice, constraints →
validate Reusable constraints: Email, UUID, URL, ranges, MQTT topics, binary file formats (PNG, JPEG, PDF, ZIP…), … →
format Format bridges: JSON, YAML, TOML, Gob, Binary (raw bytes), streaming, env vars, File I/O →
schema Schema model (pure data, zero dependencies) →
route HTTP route descriptors: Route, Param, SecurityScheme →
middleware Declarative security/Transform middleware vocabulary shared by api/rest/api/events/api/reqreply: Middleware, Declaration[In,Out], SecurityScheme, Disposition, ContextField[V] →
stats Observer interfaces: ValidationObserver, Observer, PipelineObserver, SecurityObserver, FileObserver, SQLObserver, TraceObserver; NoopObserver + LoggingObserver + NewFanout →
config Typed env-var config loading: FromEnv[T]/FromEnvVar[T], schema-driven coercion →
app Application lifecycle: root ctx + observer injection, supervised goroutines (fail-fast), LIFO shutdown hooks →
ports Protocol-agnostic IO enforcement points: SourcePort/SinkPort/IOPort/LatestPort/ToolPort/DuplexPort →

API builders (Layer 2)

Package Description pkg.go.dev
api/rest REST API builder: typed Decode/Encode + OpenAPI spec →
api/events Event channel builder (PUB/SUB): typed Decode/Encode + AsyncAPI spec; works for MQTT 3, MQTT 5, ZMQ PUB/SUB →
api/reqreply Request-reply route builder: NewRoute[Req,Resp](topic, codecs, ...RouteOpt) + Route.RegisterHandle(server) (*RouteHandle, error); mirrors api/rest for async transports (ZMQ REQ/REP, MQTT 5); generates AsyncAPI 3.0 with request-reply reply: block →
api/mcp MCP server builder: Tools, Resources, Prompts →

Adapters

Package Description pkg.go.dev
adapters/nethttp net/http: server (Handler, Register) + client (Call) →
adapters/chi chi router adapter →
adapters/mqtt Paho MQTT 3.1.1: NewSubscribeTransport/NewPublishTransport (PUB/SUB, consumed via events.SubscribeHandle/events.PublishHandle) + Connect; uses api/events channel declarations →
adapters/mqtt5 MQTT 5.0 (paho.golang): NewSubscribeTransport/NewPublishTransport (PUB/SUB) + NewServerTransport/NewClientTransport (request-reply, consumed via reqreply.Server.Attach/Client.Attach) + Connect; User Properties + ContentType auto-format; UserPropertyParam.WithCodec for property validation →
adapters/zeromq ZeroMQ (CGO-free FramedSocket interface): NewSubscribeTransport/NewPublishTransport (PUB/SUB) + NewServerTransport/NewClientTransport (REQ/REP) + NewRouterServerTransport/NewDealerClientTransport (DEALER/ROUTER concurrent), all consumed via reqreply.Server.Attach/Client.Attach →
adapters/sql SQL adapter: Validate[T] (codec-level row validation, wraps codec encode→decode round trip) + Migrator (goose migrations wrapper); RowValidationError, MigrationError — both slog.LogValuer →
adapters/redis Typed cache adapter for any Redis-protocol server: Get/Set/Seed, codec-validated round trip →
adapters/websocket Server-side WebSocket adapter: typed, codec-validated frame streams over persistent duplex connections →
adapters/file Protocol-agnostic file IO adapter bindings for ports (stdlib-only, no CGO/external deps) →
adapters/mcpgo mark3labs/mcp-go adapter →
adapters/mcprest Bridges api/rest client calls (via adapters/nethttp) to MCP tool handlers (via adapters/mcpgo) →
adapters/openai ports.IOAdapter against any OpenAI-compatible Chat Completions endpoint (OpenAI, Azure OpenAI, Ollama, vLLM, LM Studio, Groq, …) →
adapters/templ templ SSR format plug-in →

Forge pipelines (Layer 3) and Reactive streams

Package Description pkg.go.dev
forge Governed KPI functions: NewFunction, Compose, Registry; synchronous batch computation with SHA-256 governance hashes and PipelineSpec YAML →
stream Reactive stream pipelines over typed Go channels: From, FromCodec, Apply (wraps forge.Function per-item), Filter, Tap, MapErr, Merge, Tee, CombineLatest2, Buffer, Debounce, Throttle, Drain, Collect; Stream[T]{Values, Errors} explicit error channels →

Renderers

Package Description pkg.go.dev
render/openapi OpenAPI 3.1 spec renderer →
render/asyncapi/v3 AsyncAPI 3.0 spec renderer →
render/asyncapi/v2 AsyncAPI 2.6 spec renderer (frozen) →
render/jsonschema JSON Schema renderer (used by api/mcp) →
render/pipeline Pipeline YAML renderer (used by forge) →