sdk

module
v0.19.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2026 License: MIT

README

kitsunium/sdk

A Go SDK providing a normed, performant toolbox for downstream applications: structured logging, universal codec dispatch, typed errors with stable wire codes, a crypto suite, and OS process supervision.

Packages

pkg/v1 ships 87 packages: 4 at the top level — errs, clock, crypto and proc — plus eighty-three nested ones (the six scheme facades under crypto/ — agree, hash, kdf, mac, password, sign — the six under concur/ — group, singleflight, worker, batcher, snapshot, recycler — the two under collections/ — heap, ring — the five under security/ — authz, redact, secret, session, token — the six under net/ — server, client, tlsid, sse, websocket, static — the six under observe/ — logger, logger/writer, logger/slogbridge, metrics, trace, profiling — the nine under proc/ — process, signal, reaper, rlimit, cgroup, memlimit, ipc, systemd/notify, systemd/listen — the twenty-eight under data/ — codec, its sixteen per-format packages (codec/asn1, codec/baseenc, codec/bson, codec/cbor, codec/csv, codec/flatbuffers, codec/form, codec/json, codec/msgpack, codec/multipart, codec/ndjson, codec/pem, codec/tlv, codec/toml, codec/xml, codec/yaml), codec/strictjson, codec/strictjson/httpbody, codec/jsonshape, codec/jsonpatch, transform, sql, docstore, queue, cache, vfs, semver — and the fifteen under app/ — config, cli, i18n, validation, view, events, scheduler, statemachine, resilience, lifecycle, health, lock, id, mail, mail/spool), and links the standard library and nothing else (ADR 0156). They are grouped below by the job they do, and each links to its own generated README.md. The distribution mechanisms that close the list are the framework's packages, imported from github.com/kitsunium/sdk/framework/… (ADR 0158).

Observability
Package What it does
logger + writer, slogbridge Structured logger, one allocation per emit (see its BENCH.md). Multi-sink (console / file / syslog / memory), middleware chain, build-time version stamping; writer is the named, config-driven sink registry and slogbridge is the one package allowed to import log/slog, so a consumer facing a concrete *slog.Logger stops building a second pipeline. Trace-correlated by default: a record emitted inside a span carries trace_id / span_id as top-level fields; one emitted outside carries neither key rather than an invalid all-zero id. LevelGate gives one branch of a fan-out a floor of its own — a terminal at Info, a viewer at Debug.
metrics The OpenTelemetry metrics data model, implemented from the specification with zero go.opentelemetry.io imports. Typed attributes whose kind is part of the series identity, explicit delta/cumulative temporality, OTLP/JSON on the wire. The Prometheus exporter is a deliberately lossy connector and says which losses it takes.
trace Distributed tracing on the OTel trace model + W3C Trace Context, both written from their documents. The sampling decision is taken once at the root and travels in the sampled bit, so a trace never has holes. A malformed traceparent starts a new trace and never fails a request.
health Liveness, readiness and startup are three questions, so they take three types: a readiness Check gets a context and may reach a dependency; a liveness SelfCheck has none to reach one with. The classic mis-wiring does not compile by accident. Ask is the other end — the question a container's HEALTHCHECK asks, from a binary in an image with no shell and no curl: ready means 200 and nothing else, and every other outcome has its own code.
profiling The process's own CPU, heap and goroutines. A CPU window and the live heap captured through runtime/pprof — one CPU profiler per process, so a second capture is refused rather than queued — the pprof format decoded with the standard library, samples folded onto owners you name so the parts add up to the total exactly, and the runtime's goroutine dump read into goroutines and grouped. A heap profile is sampled, and the doc says so first.
Application plumbing
Package What it does
config env + file layering, typed decode, cross-OS poll-watch, and a schema: a missing required key fails at startup with every missing key named at once, an unknown key is refused by default, and a default is a layer under every source so timeout = 0 stays 0.
lifecycle Ordered bring-up, reverse teardown. A partial start is unwound before Start returns, through the same path an ordinary Stop uses; the shutdown budget is per component, so the first thing that will not finish cannot spend everyone else's. A supervisor keeps a component's loop running: restarted after an error, an early return or a panic, on a growing backoff, and joined on stop.
cli Sub-commands, generated help and a typed exit status on the stdlib flag, with zero dependencies. flag.ExitOnError is refused by name — nothing here can end your process.
events In-process synchronous bus keyed on the event's concrete Go type. Not a queue: no durability, no retry, no dead-letter path, and deliberately no async mode.
queue The asynchronous, durable counterpart. At-least-once, and the consequence is in the type: Deliveries counts from 1 and HandlerIsIdempotent is refused at its zero value. The durable broker's whole state is a directory and every transition is one rename(2). An idle consumer sleeps until a publication, a retry falling due or a lapsed lease wakes it, so the poll only bounds what another process publishes.
scheduler Five-field POSIX cron + fixed intervals. DST, missed deadlines and overlap are decided and documented rather than emergent.
statemachine Entities of your store moved along declared states: events you fire, timers after a duration in a state, deadlines the entity carries, guards on it. One transition per entity at a time, a hook that panics never leaves one locked, and a replace never resurrects a deleted entity. The loop keeps an agenda — one heap entry per entity — so it sleeps until the next transition due or a write and finds it in O(log N), not by re-reading the store.
cache The LRU+TTL primitive and the domain above it: invalidation by tag, stampede protection, L1/L2 chaining. Stampede protection stops at the process boundary, and says so.
clock The time port — Clock / Waiter / Timed, plus System and a ManualClock a test drives by hand. Every SDK Clock field takes one, so a timeout, a cron cadence or a lease expiry is asserted exactly, with no sleeping.
semver Version precedence the way Go writes versions — SemVer 2.0.0 with a leading v — and Go pseudo-versions recognised and read, with golang.org/x/mod's names and answers and nothing outside the standard library. An unreadable string sorts first, numbers of any size order exactly, nothing allocates.
group, singleflight, worker, batcher, snapshot, recycler (concur/) + heap, ring (collections/) The kernel's concurrency primitives and containers, published as pure aliases (ADR 0159): a fan-out that joins every failure or collects every value, one execution per key for concurrent callers, a loop ticking on an injected clock, a size-or-time batcher, a copy-on-write value, a capped object pool, a binary heap and a single-producer ring.
resilience Retry, circuit breaker, rate limit — one bucket, or one per caller with the set of callers bounded — bulkhead, timeout, fallback, hedging: composable Runner policies. The backoff curve is public and never wraps negative, and the retry waits on a clock a test can move. A policy's zero value is a safe default or an explicit refusal, never an inert policy.
lock Named exclusive leases over one process or one machine, with fencing tokens. What it does not guarantee is stated as loudly: the SDK can only issue a fence; where the resource cannot compare it, exclusion is not guaranteed against a GC pause.
id UUIDv4/v7, ULID, snowflake, NanoID, KSUID, TypeID.
Network and web
Package What it does
server + sse, websocket, static Inbound HTTP with TLS/mTLS identity, per-phase deadlines and policy; Server-Sent Events; and RFC 6455 WebSocket written in the stdlib, whose MUST-fails are enforced rather than tolerated. static serves a file tree — an embedded single-page application — the way http.FileServerFS does not: never a directory listing, never HTML for a missing script, and the security headers on every answer. Draining is announced to the handler, never imposed.
client The outbound half over the same substrate: policy, per-phase deadlines, call hooks.
tlsid TLS/mTLS identity from memory or disk, shared by both halves.
view Server-side rendering on html/template, not a reimplementation — contextual escaping is an HTML parser, and a hand-written one is where the XSS would come from. text/template has no representation at all; an AST audit fails the build on the import.
i18n Message translation with CLDR plurals over a named 13-language subset. An unsupported language is refused by name at construction, because falling back to English's two categories renders a wrong Polish sentence that nothing observes.
mail + spool MIME composition + SMTP. A CR or LF in a header is refused and never repaired, because the three stdlib helpers that would repair it deliver a message you did not write while reporting success. And a durable outbox, the spool (its own package): a mail is validated at Send and queued, retried on a growing backoff, dead-lettered with its last failure. A redelivery of a mail it delivered is dropped; the one resend left, after a crash between the relay's acceptance and the acknowledgement, carries the same Message-ID, so a receiver can recognise it.
Data and security
Package What it does
codec + one package per format, json … xml, and strictjson (+ httpbody), jsonshape, jsonpatch, json / yaml / toml / bson Universal dispatch over a Format registry — 24 formats behind one Marshal / Unmarshal / NewEncoder / NewDecoder: asn1-der, bson, cbor, csv, flatbuffers, form, json, msgpack, multipart, ndjson, pem, tlv, toml, xml, yaml + 9 base-N encodings. strictjson is the other JSON decoder, for documents somebody else wrote: one reading or a refusal — no duplicate name, no case-only match, no unknown member, no trailing data — within a byte bound, and no refusal ever quotes the input. jsonshape describes a Go type's wire shape under encoding/json — members resolved exactly as the encoder resolves them, each with the Go field behind it. jsonpatch says what changed between two JSON documents, as RFC 6902 operations with the value each writes and the value it replaces. Each per-format package — asn1, baseenc (nine base-N formats), bson, cbor, csv, flatbuffers, form, json, msgpack, multipart, ndjson, pem, tlv, toml, xml, yaml — registers its format and names its codes, so a program reading YAML links the SDK's own YAML reader and no other codec, and codec is their aggregate; bson also names BSON's value types and has its own Marshal / Unmarshal. A request body is strictjson/httpbody's, so the decoder itself links no net/http. Every codec is implemented on the standard library alone — YAML as a named subset of YAML 1.2.2 that refuses anchors, tags, merge keys and the other constructs it leaves out by name; the full yaml.v3 reader is the opt-in module third-party/codec/yaml, registered as yaml-full.
transform Compression without the codec package: gzip, raw DEFLATE and the zlib envelope from the standard library, zstd and s2 from the opt-in third-party/transform. DecompressBounded takes your ceiling and refuses a stream past it rather than cutting it short; a scheme that can be told the ceiling stops at it, so it bounds the work and not only the verdict.
errs Typed errors with dotted-quad codes (MM.LL.PP.SS) + a wire-safe Public / log-only Private split. Construction (New, Wrap, Field) and introspection (CodeOf, HasCode, NewPrefixMatcher).
crypto + hash, sign, mac, kdf, agree, password AEAD seal/open with hidden nonces, hashing, signatures, MACs, key derivation, key agreement, password hashing and a check against the ten thousand most common passwords — and JWK/JWKS, where a private export is opt-in and never the default.
token JWT over JWS Compact + PASETO v4.public. The algorithm is bound by the constructor and never read from the token, so algorithm confusion is a call that does not compile; alg:none has no representation in the type.
secret A secret is a value no rendering writes down: secret.Value prints <redacted> under every fmt verb, JSON, text and slog, reveals its bytes only through Reveal, and decodes from a configuration string like any field. Versioned stores — memory, the environment with the Docker/Kubernetes NAME_FILE convention, a 0700 directory of atomically published records sealed with AES-256-GCM — a Keyring whose boxes name the version that sealed them so a rotation never breaks what came before it, and a Rotator that keeps at least two. SubjectKeys: one data key per subject under that rotating root, so a rotation re-wraps one small key per subject and never a field, and destroying a subject's key erases every copy it sealed.
session Server-side sessions. Regenerate is the only call that binds a subject and always mints a new identifier, so session fixation is prevented by the absence of any other spelling rather than by remembering a step.
authz RBAC + ABAC with no policy DSL — a condition is a Go func. Abstention is a third verdict and the zero value, because folding "no opinion" into a grant is a hole and into a refusal is an outage.
validation Constraints, located violations (user.addresses[2].zip), collect-all by default. A message names the rule and the bound but never the value — a security property with its own test.
sql Ports above database/sql, deliberately never an ORM, and no driver. A unit of work receives an Executor with no Commit and no Rollback, so a callee ending its caller's transaction is a sentence with no spelling.
vfs Reading is io/fs unchanged (FS is a type alias, so fs.WalkDir applies with no adapter); writing is four verbs; publication is rename(2)-atomic — measured at 0 torn reads out of 600.
docstore Typed, keyed JSON documents with unique and multi-valued indexes, in memory, on a filesystem or over SQL. A write is durable before it returns and costs the same at a hundred documents or a hundred thousand: it publishes one small file, and the store rests as ONE readable snapshot. Asked to, it keeps each document's last versions in the document's own write, so no crash ever separates them.
redact Values, JSON documents, text and log attributes shown with their secrets replaced — a name that says it is one, a field declared secret, a URL's credentials — within an exact byte bound, never touching the input. What it does not recognise is stated, because it is a display filter and not an access control.
Process, platform and distribution
Package What it does
proc + process, signal, reaper, rlimit, cgroup, systemd/notify, systemd/listen OS process supervision: spawn, signals, subreaping, resource limits, cgroups, systemd readiness and socket activation. Uniform typed UnsupportedPlatform where a kernel offers no native mechanism. process also reads the process itself: its runtime state and the build it came from, a module's release, commit and local directory kept apart.
memlimit Reads the cgroup cap that already bounds this process — which the Go runtime does not — so a service in a 512 MiB container gets a soft limit instead of a SIGKILL.
ipc A private socket between processes of one machine: its directory gates it and the path above that directory is refused where another account could steer it; the kernel names the peer where it can (SO_PEERCRED on Linux; on Windows a named pipe whose own DACL names the account, each end's account read from the other's token).
git (framework) What a branch changed, as a value that can say it does not know: "nothing changed" and "I could not tell" are opposite instructions, so the resolver degrades rather than answering with an empty set. And what a working tree is at — its commit, that commit's time, whether a tracked file differs — through the same hardened invocations.
selfupdate (framework) Signature then digest then disk. Comparing an archive against a checksum file fetched beside it verifies nothing; a build with no vendor key installs nothing.
entitlement (framework) Vendor-signed roster → grant, with an offline cache, an anti-rollback ratchet and a CI seat. Bring your own Identity: three methods, and none of them says "ssh".
gate (framework) May this invocation run? A policy value and a pure decision — it verifies nothing, upgrades nothing and never ends a process.

Install

The SDK is one Go module, github.com/kitsunium/sdk — pkg/v1, the framework and the internals they are built on — and it links the standard library and nothing else (ADR 0156, ADR 0162):

go get github.com/kitsunium/sdk@latest

then import the packages you use — github.com/kitsunium/sdk/pkg/v1/data/codec, …/pkg/v1/errs, …/framework/kit. Importing them first and running go mod tidy works as well: up to v0.17.0 they were the modules …/pkg and …/framework, and v0.18.0 gave each a last version that holds no package, so Go resolves the imports to github.com/kitsunium/sdk (ADR 0162). An integration that needs a vendor library is a module of its own, required by name, so you take that vendor and no other: go get github.com/kitsunium/sdk/third-party/aws@latest, or …/framework/connectors/postgres.

Migrating from …/pkg and …/framework (v0.17.0 and before)

Up to v0.17.0 the SDK was split into modules — …/pkg, …/framework and three …/internal/* ones your go.mod lists as // indirect. Since v0.18.0 it is one; the import paths did not change, the requirement does. One command moves a go.mod over, and it must drop every old module, or each package is found in two modules of the build and it fails with an ambiguous import:

go get github.com/kitsunium/sdk@v0.18.0 github.com/kitsunium/sdk/internal/kernel@none
go mod tidy

Go names this command itself: v0.18.0 of …/pkg and …/framework deprecates them, so go list -m -u marks both (deprecated), and go get prints, on one line, go: module github.com/kitsunium/sdk/pkg is deprecated: moved into github.com/kitsunium/sdk at v0.18.0, import paths unchanged; migrate with: and the command above.

The one removal is enough: every version of …/pkg, …/framework, …/internal/core and …/internal/service up to v0.17.0 requires …/internal/kernel, so go get takes all five out and names each (go: removed …). Upgrading …/pkg and …/framework to v0.18.0 instead is no migration: that version is empty, and the internal modules stay. Add github.com/kitsunium/sdk/<module>@v0.18.0 to the same go get for each vendor or connector module your go.mod requires (third-party/aws, framework/connectors/postgres…); without it, go get removes that module with the old ones and go mod tidy finds it again at its newest version.

Migrate from the bottom up: a library before the modules that require it. The @none takes out, with the old modules, every module that still requires them — a library of yours still on …/pkg leaves your go.mod in the same command, and go get says so with go: removed <module> (or go: downgraded <module> when an older version of it did not use the SDK). Such a line for a module that is not the SDK's means: migrate that module first, then run the command again. When it is done,

go mod graph | grep -E 'kitsunium/sdk/(pkg|framework|internal/[a-z]+)@'

prints nothing. sdkguard prints the command when it finds a go.mod still on …/pkg, and the removal when it finds one that requires the SDK module beside an old one (ADR 0162).

Quick example

package main

import (
    "fmt"
    "github.com/kitsunium/sdk/pkg/v1/data/codec"
)

func main() {
    payload := map[string]any{"hello": "world"}
    out, err := codec.Marshal(codec.JSON, payload)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(out))
}

What makes this SDK different

  • Layered architecture — kernel (stdlib-only primitives) → core (interfaces + values + error codes) → service (implementations) → pkg/v1 (stable public alias layer) → framework. Each layer is grouped by the same families — crypto, security, net, proc, observe, data, app (ADR 0155). Dependency direction enforced on the build graph by scripts/check-layer-deps.sh (ADR 0068).
  • Typed errors throughout — fmt.Errorf / errors.New are banned in production code. Every error carries a wire-safe Public message and a log-only Private envelope. make guard gates it: the SDK runs its own sdkguard rule SDK002 over its production tree in make lint and CI. And every code is declared in one place — the core package at the path of the engine that raises it, so a domain's codes are found together and its public sentinels all alias the core (ADR 0160, gated by scripts/pre-commit/check-core-symmetry.sh).
  • One Marshal/Unmarshal for everything — text, binary, base-encoded — codec.Marshal(format, v) works the same way regardless of the underlying wire shape.
  • The rules are checkable from outside — the conventions this SDK states in its ADRs are enforced on your codebase too, by a tool the SDK ships:
    go run github.com/kitsunium/sdk/tools/sdkguard@latest -level=invariant ./...
    
    It catches the defects that never announce themselves — a second logging pipeline beside the SDK logger (two thresholds, two formats, half-stamped records), stdout used as a log destination under a stdio protocol, a logger.Version assigned at runtime. Rules target constructs, never imports, so *slog.Logger fields and fmt.Fprintln(os.Stdout, …) stay legitimate. It also warns — without failing your build — when your go.mod pins an SDK older than the latest release, which matters here because a patch is cut whenever an internal package changes, carrying fixes no public-API changelog would show. See ADR 0033 and tools/sdkguard/CLAUDE.md.
  • One module, and a module per vendor — the SDK is one module at the root (ADR 0162); go.work adds the thirteen modules that require a vendor library: the framework's four connectors (three database engines and entitlement's ssh identity) and nine vendor modules under third-party/ — one per vendor, codec/yaml included (ADR 0157). Each can be built standalone with GOWORK=off, and bash scripts/ci/go-modules.sh lists them all. e2e/, tools/genindex/ and tools/sdkguard/ are auxiliary modules held deliberately outside it (adding them breaks Bazel's go_deps, which reads go.work) — build those with GOWORK=off.

Releases

Versioning follows semver and Go's sub-directory tag convention. A release is ONE tag, vX.Y.Z, on the SDK module github.com/kitsunium/sdk, and one GitHub release; a vendor or connector module is tagged at the same version — third-party/<path>/vX.Y.Z, framework/connectors/<engine>/vX.Y.Z — only by a release that changes it, and the release's notes list the ones it cut (ADR 0162). The releases up to v0.17.0 were cut as pkg/vX.Y.Z with every other module in lockstep (ADR 0017, ADR 0147, ADR 0157); those tags stay, and v0.18.0 cut pkg/v0.18.0 and framework/v0.18.0 once more, as tombstones — a go.mod that requires the SDK module, holds no package and deprecates its module with the migration command. A release is sized by the release:* label a maintainer sets on the pull request (ADR 0135). The full release workflow lives in ADR 0007 and the records that amend it (docs/adr/).

Documentation

Full versioned documentation lives at the docs portal (run make serve from the repo root, or browse the published deployment). Highlights:

  • Concepts — the 4-layer model, error semantics, codec dispatch
  • Changelog — auto-generated from git log per release
  • Per-package reference — codec, errs, logger with their full Go doc surfaces
  • ADRs — architecture decisions, reachable from the "For contributors ↗" footer link

Repository layout

internal/        stdlib-only primitives (kernel) + domain interfaces, values and codes (core)
                 + concrete impls (service), grouped by family in each layer (ADR 0155)
pkg/v1/          stable public API — type aliases + ergonomic helpers
docs/            ADRs + the Astro-based docs site
scripts/release/ release tooling — see ADR 0007
tools/           build-time helpers (workspace_status, genindex, alloc-lane-targets)
                 + sdkguard/ — consumer-facing rule enforcement (ADR 0033)
framework/       the layer above pkg/v1 a product imports (ADR 0147), the
                 distribution mechanisms and their ssh connector included (ADR 0158)
third-party/     opt-in vendor integrations, one Go module per vendor (ADR 0157)
e2e/             real-kernel conformance harness + the Docker-backed integration
                 suites (auxiliary module, GOWORK=off)

Verification

make build       # bazel mod tidy + gazelle + gofumpt + bazel build //...
make test        # every *_test target green incl. AST audits
make test-alloc  # race-off allocation gates (the only lane running //go:build !race tests)
make lint        # drift check (read-only): mod tidy + gazelle + gofumpt + guard + doc links + ktn-linter + the guards
                 #   (alloc-lane and audit coverage, domain docs, core symmetry, package docs, BENCH.md, error codes) + layer firewall
make guard       # sdkguard over the SDK's own tree: the invariants (ADR 0033), and SDK002 over production code (rule 2)
make bench       # regenerate codec BENCH.md from real Go benchmarks

Benchmarks

Kernel hot-path benchmarks live next to their source as internal/kernel/**/*_bench_test.go. Run them via:

make sdk-bench          # steady-state numbers → .bench.out (benchstat-friendly)
make sdk-bench-profile  # CPU / mem / block / mutex profiles → profiles/
make sdk-bench-compare  # benchstat A/B comparison vs a recorded .bench.main.out

See docs/BENCHMARK-TEMPLATE.md for the bench conventions (white-box package, b.Loop(), mandatory b.ReportAllocs(), _Parallel variants, and the allocation budgets the CI gate enforces).

Those budgets are checked by the race-off allocation lane — make test-alloc, whose target list lives in tools/alloc-lane-targets.txt. A test carrying //go:build !race is invisible to the race suite, so that lane is its only gate; scripts/pre-commit/check-alloc-lane-coverage.sh fails the build if such a test exists in a package the lane does not cover.

License

MIT — see LICENSE for the full text.

Directories

Path Synopsis
framework module
entitlement
Package entitlement verifies a machine's entitlement to run a product: local key material plus a vendor-signed roster, turned into a grant or a typed refusal.
Package entitlement verifies a machine's entitlement to run a product: local key material plus a vendor-signed roster, turned into a grant or a typed refusal.
gate
Package gate decides whether one invocation of a distributed binary may run.
Package gate decides whether one invocation of a distributed binary may run.
git
Package git answers what a branch changed and what a working tree is at, by shelling out to the git binary.
Package git answers what a branch changed and what a working tree is at, by shelling out to the git binary.
internal/core/entitlement
Package entitlement — the error-code range this domain owns (framework/connectors/ssh block).
Package entitlement — the error-code range this domain owns (framework/connectors/ssh block).
internal/core/gate
Package gate — the dotted-quad code range this domain owns.
Package gate — the dotted-quad code range this domain owns.
internal/core/git
Package git — the error-code range owned by this domain (ADR 0005 §Registry).
Package git — the error-code range owned by this domain (ADR 0005 §Registry).
internal/core/selfupdate
Package selfupdate — the error-code range owned by this domain (ADR 0005 §Registry).
Package selfupdate — the error-code range owned by this domain (ADR 0005 §Registry).
internal/kit
Package kit — who may call an operation: the principal, the rules and their checks.
Package kit — who may call an operation: the principal, the rules and their checks.
internal/kit/plug
Package plug is where kit's opt-in subsystems plug in: the HTTP engine and the frontends' file server (framework/kit/server), the Studio's event stream and its profiler (framework/kit/studio).
Package plug is where kit's opt-in subsystems plug in: the HTTP engine and the frontends' file server (framework/kit/server), the Studio's event stream and its profiler (framework/kit/studio).
internal/kit/serverkit
Package serverkit is what framework/kit/server plugs into kit: the HTTP engine an app in the server profile serves on (the SDK's net/server) and the frontends' file server (the SDK's net/static).
Package serverkit is what framework/kit/server plugs into kit: the HTTP engine an app in the server profile serves on (the SDK's net/server) and the frontends' file server (the SDK's net/static).
internal/kit/studiokit
Package studiokit — the Studio's live events, as a Server-Sent Events stream.
Package studiokit — the Studio's live events, as a Server-Sent Events stream.
internal/service/entitlement
Package entitlement — the trust anchors this verifier accepts, and why there is more than one of them.
Package entitlement — the trust anchors this verifier accepts, and why there is more than one of them.
internal/service/gate
Package gate — the classifier behind framework/gate.
Package gate — the classifier behind framework/gate.
internal/service/git
Package git — the changed set: which files, line ranges and directories a branch touched.
Package git — the changed set: which files, line ranges and directories a branch touched.
internal/service/selfupdate
Package selfupdate replaces the running binary with a newer signed release.
Package selfupdate replaces the running binary with a newer signed release.
kit
Package kit — who may call an operation: the principal, the rules and their checks.
Package kit — who may call an operation: the principal, the rules and their checks.
kit/config/toml
Package toml lets a kit product read TOML configuration files — config/config.toml, config/<env>.toml — as it reads JSON ones.
Package toml lets a kit product read TOML configuration files — config/config.toml, config/<env>.toml — as it reads JSON ones.
kit/config/yaml
Package yaml lets a kit product read YAML configuration files — config/config.yaml, config/<env>.yaml, and .yml — as it reads JSON ones.
Package yaml lets a kit product read YAML configuration files — config/config.yaml, config/<env>.yaml, and .yml — as it reads JSON ones.
kit/server
Package server makes a kit app in the server profile — the default — serve HTTP: its endpoints, its frontends and its health probes, on the SDK's server engine.
Package server makes a kit app in the server profile — the default — serve HTTP: its endpoints, its frontends and its health probes, on the SDK's server engine.
kit/storetest
Package storetest is the conformance suite of kit's stores (ADR 0004): what a store does on every backend — in memory, in the data directory, on each database engine —, run by kit's tests on memory, files and kit's fake database, and by each engine module's tests on its engine.
Package storetest is the conformance suite of kit's stores (ADR 0004): what a store does on every backend — in memory, in the data directory, on each database engine —, run by kit's tests on memory, files and kit's fake database, and by each engine module's tests on its engine.
kit/studio
Package studio serves, in dev, the read-only API the kit tool's Studio reads: the graph and its event stream, traces, instances and items, the source, the dev tools — the process, the databases, goroutines, the heap profile, logs, the mailbox, former values.
Package studio serves, in dev, the read-only API the kit tool's Studio reads: the graph and its event stream, traces, instances and items, the source, the dev tools — the process, the databases, goroutines, the heap profile, logs, the mailbox, former values.
model
Package model is the Product Graph: the one data shape every part of the framework agrees on.
Package model is the Product Graph: the one data shape every part of the framework agrees on.
model/internal/core
Package core is the Product Graph under the names the role rule asks for: every struct carries its role (NodeEntity, GraphMessage, EndpointSpec, …).
Package core is the Product Graph under the names the role rule asks for: every struct carries its role (NodeEntity, GraphMessage, EndpointSpec, …).
selfupdate
Package selfupdate replaces the running binary with a newer signed release.
Package selfupdate replaces the running binary with a newer signed release.
telemetry
Package telemetry — the exporter: a bounded ring producers never wait on, drained to the clients attached to a private socket, which it never reads.
Package telemetry — the exporter: a bounded ring producers never wait on, drained to the clients attached to a private socket, which it never reads.
internal module
core/app/cli
Package cli declares the command-line port of the SDK: the Action one command runs, the Binder that declares its flags, and the Executor that resolves an argument vector against a tree of CommandValue and dispatches it.
Package cli declares the command-line port of the SDK: the Action one command runs, the Binder that declares its flags, and the Executor that resolves an argument vector against a tree of CommandValue and dispatches it.
core/app/config
Package config — range 0.2.10.* (ADR 0028 core/app/config block).
Package config — range 0.2.10.* (ADR 0028 core/app/config block).
core/app/events
Package events — ranges 0.2.22.* (ADR 0053 core/app/events block) and 0.3.52.* (ADR 0053 service/app/events block, declared here since ADR 0160).
Package events — ranges 0.2.22.* (ADR 0053 core/app/events block) and 0.3.52.* (ADR 0053 service/app/events block, declared here since ADR 0160).
core/app/health
Package health — ranges 0.2.29.* (ADR 0060 core/app/health block) and 0.3.59.* (ADR 0060 service/app/health block, declared here since ADR 0160).
Package health — ranges 0.2.29.* (ADR 0060 core/app/health block) and 0.3.59.* (ADR 0060 service/app/health block, declared here since ADR 0160).
core/app/i18n
Package i18n — ranges 0.2.30.* (ADR 0063 core/app/i18n block) and 0.3.60.* (ADR 0063 service/app/i18n block, declared here since ADR 0160).
Package i18n — ranges 0.2.30.* (ADR 0063 core/app/i18n block) and 0.3.60.* (ADR 0063 service/app/i18n block, declared here since ADR 0160).
core/app/id
Package id — ranges 0.2.7.* (ADR 0024 core/app/id block) and 0.3.39.* (ADR 0024 service/app/id block, declared here since ADR 0160).
Package id — ranges 0.2.7.* (ADR 0024 core/app/id block) and 0.3.39.* (ADR 0024 service/app/id block, declared here since ADR 0160).
core/app/lifecycle
Package lifecycle — ranges 0.2.19.* (ADR 0050 core/app/lifecycle block) and 0.3.49.* (ADR 0050 service/app/lifecycle block, declared here since ADR 0160).
Package lifecycle — ranges 0.2.19.* (ADR 0050 core/app/lifecycle block) and 0.3.49.* (ADR 0050 service/app/lifecycle block, declared here since ADR 0160).
core/app/lock
Package lock — ranges 0.2.21.* (ADR 0052 core/app/lock block) and 0.3.51.* (ADR 0052 service/app/lock block, declared here since ADR 0160).
Package lock — ranges 0.2.21.* (ADR 0052 core/app/lock block) and 0.3.51.* (ADR 0052 service/app/lock block, declared here since ADR 0160).
core/app/mail
Package mail — the mailbox value.
Package mail — the mailbox value.
core/app/mail/spool
Package spool — range 0.3.81.* (ADR 0111 service/app/mail/spool block, declared here since ADR 0160).
Package spool — range 0.3.81.* (ADR 0111 service/app/mail/spool block, declared here since ADR 0160).
core/app/resilience
Package resilience — range 0.2.8.* (ADR 0026 core/app/resilience block).
Package resilience — range 0.2.8.* (ADR 0026 core/app/resilience block).
core/app/scheduler
Package scheduler — ranges 0.2.12.* (ADR 0041 core/app/scheduler block) and 0.3.43.* (ADR 0041 service/app/scheduler block, declared here since ADR 0160).
Package scheduler — ranges 0.2.12.* (ADR 0041 core/app/scheduler block) and 0.3.43.* (ADR 0041 service/app/scheduler block, declared here since ADR 0160).
core/app/statemachine
Package statemachine — ranges 0.2.56.* (ADR 0120 core/app/statemachine block) and 0.3.88.* (ADR 0120 service/app/statemachine block, declared here since ADR 0160).
Package statemachine — ranges 0.2.56.* (ADR 0120 core/app/statemachine block) and 0.3.88.* (ADR 0120 service/app/statemachine block, declared here since ADR 0160).
core/app/validation
Package validation — ranges 0.2.15.* (ADR 0046 core/app/validation block) and 0.3.47.* (ADR 0046 service/app/validation block, declared here since ADR 0160).
Package validation — ranges 0.2.15.* (ADR 0046 core/app/validation block) and 0.3.47.* (ADR 0046 service/app/validation block, declared here since ADR 0160).
core/app/view
Package view — ranges 0.2.27.* (ADR 0058 core/app/view block) and 0.3.57.* (ADR 0058 service/app/view block, declared here since ADR 0160).
Package view — ranges 0.2.27.* (ADR 0058 core/app/view block) and 0.3.57.* (ADR 0058 service/app/view block, declared here since ADR 0160).
core/crypto
Package crypto — the AEAD port implemented by each concrete algorithm.
Package crypto — the AEAD port implemented by each concrete algorithm.
core/crypto/key/jwk
Package jwk — the JSON Web Key format's codes, range 0.3.42.* (ADR 0005).
Package jwk — the JSON Web Key format's codes, range 0.3.42.* (ADR 0005).
core/data/cache
Package cache declares the SDK's cache DOMAIN: the Store port that owns a set of keyed entries, the EntryValue a caller hands it, and the three sibling interfaces through which a store advertises what else it can do.
Package cache declares the SDK's cache DOMAIN: the Store port that owns a set of keyed entries, the EntryValue a caller hands it, and the three sibling interfaces through which a store advertises what else it can do.
core/data/codec
Package codec — declares the optional Appender extension that hot-path encoders (NDJSON, JSON, text) implement so callers can write into a caller-supplied buffer without paying for an intermediate allocation.
Package codec — declares the optional Appender extension that hot-path encoders (NDJSON, JSON, text) implement so callers can write into a caller-supplied buffer without paying for an intermediate allocation.
core/data/codec/asn1
Package asn1 declares the error codes and the sentinels of the ASN.1 DER codec, internal/service/data/codec/asn1 — range 0.3.9.* (ADR 0005 service/data/codec/asn1 block).
Package asn1 declares the error codes and the sentinels of the ASN.1 DER codec, internal/service/data/codec/asn1 — range 0.3.9.* (ADR 0005 service/data/codec/asn1 block).
core/data/codec/baseenc
Package baseenc declares the error codes and the sentinels of the base-N codec family (base64, base64url, base32, base16, hex, ascii85, base45, base58, base62), internal/service/data/codec/baseenc — range 0.3.24.* (ADR 0006 service/data/codec/baseenc block).
Package baseenc declares the error codes and the sentinels of the base-N codec family (base64, base64url, base32, base16, hex, ascii85, base45, base58, base62), internal/service/data/codec/baseenc — range 0.3.24.* (ADR 0006 service/data/codec/baseenc block).
core/data/codec/bson
Package bson declares the error codes and the sentinels of the BSON codec, internal/service/data/codec/bson — range 0.3.36.* (ADR 0021 service/data/codec/bson block).
Package bson declares the error codes and the sentinels of the BSON codec, internal/service/data/codec/bson — range 0.3.36.* (ADR 0021 service/data/codec/bson block).
core/data/codec/cbor
Package cbor declares the error codes and the sentinels of the CBOR codec, internal/service/data/codec/cbor — range 0.3.6.* (ADR 0005 service/data/codec/cbor block).
Package cbor declares the error codes and the sentinels of the CBOR codec, internal/service/data/codec/cbor — range 0.3.6.* (ADR 0005 service/data/codec/cbor block).
core/data/codec/csv
Package csv declares the error codes and the sentinels of the CSV codec, internal/service/data/codec/csv — range 0.3.8.* (ADR 0005 service/data/codec/csv block).
Package csv declares the error codes and the sentinels of the CSV codec, internal/service/data/codec/csv — range 0.3.8.* (ADR 0005 service/data/codec/csv block).
core/data/codec/flatbuffers
Package flatbuffers declares the error codes and the sentinels of the FlatBuffers passthrough codec, internal/service/data/codec/flatbuffers — range 0.3.23.* (ADR 0006 service/data/codec/flatbuffers block).
Package flatbuffers declares the error codes and the sentinels of the FlatBuffers passthrough codec, internal/service/data/codec/flatbuffers — range 0.3.23.* (ADR 0006 service/data/codec/flatbuffers block).
core/data/codec/form
Package form declares the error codes and the sentinels of the application/x-www-form-urlencoded codec, internal/service/data/codec/form — range 0.3.40.* (ADR 0005 service/data/codec/form block).
Package form declares the error codes and the sentinels of the application/x-www-form-urlencoded codec, internal/service/data/codec/form — range 0.3.40.* (ADR 0005 service/data/codec/form block).
core/data/codec/json
Package json declares the error codes and the sentinels of the JSON codec, internal/service/data/codec/json — range 0.3.2.* (ADR 0005 service/data/codec/json block).
Package json declares the error codes and the sentinels of the JSON codec, internal/service/data/codec/json — range 0.3.2.* (ADR 0005 service/data/codec/json block).
core/data/codec/jsonpatch
Package jsonpatch declares the error codes and the sentinels of the JSON-difference package (RFC 6902 operations, not a codec), internal/service/data/codec/jsonpatch — range 0.3.90.* (ADR 0143 service/data/codec/jsonpatch block).
Package jsonpatch declares the error codes and the sentinels of the JSON-difference package (RFC 6902 operations, not a codec), internal/service/data/codec/jsonpatch — range 0.3.90.* (ADR 0143 service/data/codec/jsonpatch block).
core/data/codec/msgpack
Package msgpack declares the error codes and the sentinels of the MessagePack codec, internal/service/data/codec/msgpack — range 0.3.7.* (ADR 0005 service/data/codec/msgpack block).
Package msgpack declares the error codes and the sentinels of the MessagePack codec, internal/service/data/codec/msgpack — range 0.3.7.* (ADR 0005 service/data/codec/msgpack block).
core/data/codec/multipart
Package multipart declares the error codes and the sentinels of the multipart/form-data codec, internal/service/data/codec/multipart — range 0.3.41.* (ADR 0005 service/data/codec/multipart block).
Package multipart declares the error codes and the sentinels of the multipart/form-data codec, internal/service/data/codec/multipart — range 0.3.41.* (ADR 0005 service/data/codec/multipart block).
core/data/codec/ndjson
Package ndjson declares the error codes and the sentinels of the NDJSON codec, internal/service/data/codec/ndjson — range 0.3.11.* (ADR 0005 service/data/codec/ndjson block).
Package ndjson declares the error codes and the sentinels of the NDJSON codec, internal/service/data/codec/ndjson — range 0.3.11.* (ADR 0005 service/data/codec/ndjson block).
core/data/codec/pem
Package pem declares the error codes and the sentinels of the PEM codec, internal/service/data/codec/pem — range 0.3.10.* (ADR 0005 service/data/codec/pem block).
Package pem declares the error codes and the sentinels of the PEM codec, internal/service/data/codec/pem — range 0.3.10.* (ADR 0005 service/data/codec/pem block).
core/data/codec/scratch
Package scratch provides shared, size-bounded recycling primitives for the service codecs.
Package scratch provides shared, size-bounded recycling primitives for the service codecs.
core/data/codec/strictjson
Package strictjson declares the error codes and the sentinels of the strict JSON decoder (not a codec), internal/service/data/codec/strictjson — range 0.3.72.* (ADR 0102 service/data/codec/strictjson block).
Package strictjson declares the error codes and the sentinels of the strict JSON decoder (not a codec), internal/service/data/codec/strictjson — range 0.3.72.* (ADR 0102 service/data/codec/strictjson block).
core/data/codec/tlv
Package tlv declares the error codes and the sentinels of the TLV codec, internal/service/data/codec/tlv — range 0.3.22.* (ADR 0006 service/data/codec/tlv block).
Package tlv declares the error codes and the sentinels of the TLV codec, internal/service/data/codec/tlv — range 0.3.22.* (ADR 0006 service/data/codec/tlv block).
core/data/codec/toml
Package toml declares the error codes and the sentinels of the TOML codec, internal/service/data/codec/toml — range 0.3.5.* (ADR 0005 service/data/codec/toml block).
Package toml declares the error codes and the sentinels of the TOML codec, internal/service/data/codec/toml — range 0.3.5.* (ADR 0005 service/data/codec/toml block).
core/data/codec/xml
Package xml declares the error codes and the sentinels of the XML codec, internal/service/data/codec/xml — range 0.3.3.* (ADR 0005 service/data/codec/xml block).
Package xml declares the error codes and the sentinels of the XML codec, internal/service/data/codec/xml — range 0.3.3.* (ADR 0005 service/data/codec/xml block).
core/data/codec/yaml
Package yaml declares the error codes and the sentinels of the YAML codec, internal/service/data/codec/yaml — range 0.3.4.* (ADR 0005 service/data/codec/yaml block).
Package yaml declares the error codes and the sentinels of the YAML codec, internal/service/data/codec/yaml — range 0.3.4.* (ADR 0005 service/data/codec/yaml block).
core/data/docstore
Package docstore — range 0.3.80.* (ADR 0110 service/data/docstore block; ADR 0139 added 16 and 17, ADR 0143 18 to 20).
Package docstore — range 0.3.80.* (ADR 0110 service/data/docstore block; ADR 0139 added 16 and 17, ADR 0143 18 to 20).
core/data/queue
Package queue — the ADR 0039 capability siblings of the frozen Broker port, and the dead-letter record one of them returns.
Package queue — the ADR 0039 capability siblings of the frozen Broker port, and the dead-letter record one of them returns.
core/data/sql
Package sql — range 0.2.24.* (ADR 0055 core/data/sql block), and the transaction manager's, health probe's and migration runner's 0.3.54.* (ADR 0055 service/data/sql block, declared here since ADR 0160).
Package sql — range 0.2.24.* (ADR 0055 core/data/sql block), and the transaction manager's, health probe's and migration runner's 0.3.54.* (ADR 0055 service/data/sql block, declared here since ADR 0160).
core/data/transform
Package transform — range 0.2.5.* (ADR 0014 core/data/transform block), and the stdlib schemes' 0.3.26.* (ADR 0014 service/data/transform block, declared here since ADR 0160).
Package transform — range 0.2.5.* (ADR 0014 core/data/transform block), and the stdlib schemes' 0.3.26.* (ADR 0014 service/data/transform block, declared here since ADR 0160).
core/data/vfs
Package vfs — range 0.2.25.* (ADR 0056 core/data/vfs block), and the concrete filesystem's 0.3.55.* (ADR 0056 service/data/vfs block, declared here since ADR 0160).
Package vfs — range 0.2.25.* (ADR 0056 core/data/vfs block), and the concrete filesystem's 0.3.55.* (ADR 0056 service/data/vfs block, declared here since ADR 0160).
core/net
Package net — the listen address value.
Package net — the listen address value.
core/observe/logger
Package logger — range 0.3.1.*, the logger engine's (ADR 0005 service/observe/logger block), declared here since ADR 0160: the engine, internal/service/observe/logger, returns these and declares none.
Package logger — range 0.3.1.*, the logger engine's (ADR 0005 service/observe/logger block), declared here since ADR 0160: the engine, internal/service/observe/logger, returns these and declares none.
core/observe/logger/level
Package level defines severity levels for log records.
Package level defines severity levels for log records.
core/observe/logger/middleware/async
Package async declares the codes and sentinels of the logger's asynchronous middleware, internal/service/observe/logger/middleware/async: range 0.3.17.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/async block) and declared here since ADR 0160, so the engine declares none.
Package async declares the codes and sentinels of the logger's asynchronous middleware, internal/service/observe/logger/middleware/async: range 0.3.17.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/async block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/middleware/encwrite
Package encwrite declares the codes and sentinels of the logger's byte-encrypting middleware, internal/service/observe/logger/middleware/encwrite: range 0.3.28.*, allocated to that engine (ADR 0014 service slot 0x1c) and declared here since ADR 0160, so the engine declares none.
Package encwrite declares the codes and sentinels of the logger's byte-encrypting middleware, internal/service/observe/logger/middleware/encwrite: range 0.3.28.*, allocated to that engine (ADR 0014 service slot 0x1c) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/middleware/failover
Package failover declares the codes and sentinels of the logger's failover middleware, internal/service/observe/logger/middleware/failover: range 0.3.19.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/failover block) and declared here since ADR 0160, so the engine declares none.
Package failover declares the codes and sentinels of the logger's failover middleware, internal/service/observe/logger/middleware/failover: range 0.3.19.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/failover block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/middleware/multi
Package multi declares the codes and sentinels of the logger's fan-out middleware, internal/service/observe/logger/middleware/multi: range 0.3.16.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/multi block) and declared here since ADR 0160, so the engine declares none.
Package multi declares the codes and sentinels of the logger's fan-out middleware, internal/service/observe/logger/middleware/multi: range 0.3.16.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/multi block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/middleware/recover
Package recover declares the codes and sentinels of the logger's panic-recovering middleware, internal/service/observe/logger/middleware/recover: range 0.3.21.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/recover block) and declared here since ADR 0160, so the engine declares none.
Package recover declares the codes and sentinels of the logger's panic-recovering middleware, internal/service/observe/logger/middleware/recover: range 0.3.21.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/recover block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/middleware/route
Package route declares the codes and sentinels of the logger's routing middleware, internal/service/observe/logger/middleware/route: range 0.3.18.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/route block) and declared here since ADR 0160, so the engine declares none.
Package route declares the codes and sentinels of the logger's routing middleware, internal/service/observe/logger/middleware/route: range 0.3.18.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/route block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/middleware/sample
Package sample declares the codes and sentinels of the logger's sampling middleware, internal/service/observe/logger/middleware/sample: range 0.3.20.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/sample block) and declared here since ADR 0160, so the engine declares none.
Package sample declares the codes and sentinels of the logger's sampling middleware, internal/service/observe/logger/middleware/sample: range 0.3.20.*, allocated to that engine (ADR 0005 service/observe/logger/middleware/sample block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/middleware/tee
Package tee declares the codes and sentinels of the logger's dead-letter tee middleware, internal/service/observe/logger/middleware/tee: range 0.3.29.*, allocated to that engine (ADR 0014 service slot 0x1d) and declared here since ADR 0160, so the engine declares none.
Package tee declares the codes and sentinels of the logger's dead-letter tee middleware, internal/service/observe/logger/middleware/tee: range 0.3.29.*, allocated to that engine (ADR 0014 service slot 0x1d) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/sink/console
Package console declares the codes and sentinels of the logger's console sink, internal/service/observe/logger/sink/console: range 0.3.13.*, allocated to that engine (ADR 0005 service/observe/logger/sink/console block) and declared here since ADR 0160, so the engine declares none.
Package console declares the codes and sentinels of the logger's console sink, internal/service/observe/logger/sink/console: range 0.3.13.*, allocated to that engine (ADR 0005 service/observe/logger/sink/console block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/sink/file
Package file declares the codes and sentinels of the logger's file sink, internal/service/observe/logger/sink/file: range 0.3.14.*, allocated to that engine (ADR 0005 service/observe/logger/sink/file block) and declared here since ADR 0160, so the engine declares none.
Package file declares the codes and sentinels of the logger's file sink, internal/service/observe/logger/sink/file: range 0.3.14.*, allocated to that engine (ADR 0005 service/observe/logger/sink/file block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/sink/syslog
Package syslog declares the codes and sentinels of the logger's syslog sink, internal/service/observe/logger/sink/syslog: range 0.3.15.*, allocated to that engine (ADR 0005 service/observe/logger/sink/syslog block) and declared here since ADR 0160, so the engine declares none.
Package syslog declares the codes and sentinels of the logger's syslog sink, internal/service/observe/logger/sink/syslog: range 0.3.15.*, allocated to that engine (ADR 0005 service/observe/logger/sink/syslog block) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/writer
Package writer — range 0.2.3.* (ADR 0012 core/observe/logger/writer block).
Package writer — range 0.2.3.* (ADR 0012 core/observe/logger/writer block).
core/observe/logger/writer/journald
Package journald declares the codes and sentinels of the journald log writer, internal/service/observe/logger/writer/journald: range 0.3.31.*, allocated to that engine (ADR 0015 service slot 0x1f) and declared here since ADR 0160, so the engine declares none.
Package journald declares the codes and sentinels of the journald log writer, internal/service/observe/logger/writer/journald: range 0.3.31.*, allocated to that engine (ADR 0015 service slot 0x1f) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/writer/nettransport
Package nettransport declares the codes and sentinels of the network log writer, internal/service/observe/logger/writer/nettransport: range 0.3.30.*, allocated to that engine (ADR 0015 service slot 0x1e) and declared here since ADR 0160, so the engine declares none.
Package nettransport declares the codes and sentinels of the network log writer, internal/service/observe/logger/writer/nettransport: range 0.3.30.*, allocated to that engine (ADR 0015 service slot 0x1e) and declared here since ADR 0160, so the engine declares none.
core/observe/logger/writer/rotfile
Package rotfile declares the codes and sentinels of the rotating-file log writer, internal/service/observe/logger/writer/rotfile: range 0.3.27.*, allocated to that engine (ADR 0014 service slot 0x1b) and declared here since ADR 0160, so the engine declares none.
Package rotfile declares the codes and sentinels of the rotating-file log writer, internal/service/observe/logger/writer/rotfile: range 0.3.27.*, allocated to that engine (ADR 0014 service slot 0x1b) and declared here since ADR 0160, so the engine declares none.
core/observe/metrics
Package metrics — the sibling port that registers asynchronous instruments.
Package metrics — the sibling port that registers asynchronous instruments.
core/observe/otel
Package otel holds the OpenTelemetry types every signal shares: the typed attribute (common/v1 KeyValue and AnyValue), the Resource (resource/v1) and the InstrumentationScope (common/v1).
Package otel holds the OpenTelemetry types every signal shares: the typed attribute (common/v1 KeyValue and AnyValue), the Resource (resource/v1) and the InstrumentationScope (common/v1).
core/observe/profiling
Package profiling — range 0.3.89.*, allocated to the engine (ADR 0121 service/observe/profiling block) and declared here since ADR 0160: the engine returns these and declares none.
Package profiling — range 0.3.89.*, allocated to the engine (ADR 0121 service/observe/profiling block) and declared here since ADR 0160: the engine returns these and declares none.
core/observe/trace
Package trace — this signal's half of the shared attribute model (internal/core/observe/otel): the refusal an unusable set earns HERE, and the Resource a Tracer publishes.
Package trace — this signal's half of the shared attribute model (internal/core/observe/otel): the refusal an unusable set earns HERE, and the Resource a Tracer publishes.
core/proc
Package proc — range 0.2.6.* (ADR 0016 core/proc block).
Package proc — range 0.2.6.* (ADR 0016 core/proc block).
core/proc/ipc
Package ipc — the private socket's codes, range 0.3.91.* (ADR 0148).
Package ipc — the private socket's codes, range 0.3.91.* (ADR 0148).
core/security/authz
Package authz — hosts AttrValue, one typed fact about a request.
Package authz — hosts AttrValue, one typed fact about a request.
core/security/redact
Package redact — range 0.3.73.* (ADR 0101), declared here since ADR 0160.
Package redact — range 0.3.73.* (ADR 0101), declared here since ADR 0160.
core/security/secret
Package secret — ranges 0.2.37.* (the port's verdicts) and 0.3.68.* (the engines' own refusals) — ADR 0096 and ADR 0142, declared here since ADR 0160.
Package secret — ranges 0.2.37.* (the port's verdicts) and 0.3.68.* (the engines' own refusals) — ADR 0096 and ADR 0142, declared here since ADR 0160.
core/security/session
Package session — ranges 0.2.14.* (the port's verdicts) and 0.3.46.* (the engines' own refusals) — ADR 0045, declared here since ADR 0160.
Package session — ranges 0.2.14.* (the port's verdicts) and 0.3.46.* (the engines' own refusals) — ADR 0045, declared here since ADR 0160.
core/security/token
Package token — the immutable claim set every concrete token format decodes into and every issuer renders from.
Package token — the immutable claim set every concrete token format decodes into and every issuer renders from.
kernel/backoff
Package backoff computes an exponential backoff: how long a loop that keeps failing waits before its next attempt.
Package backoff computes an exponential backoff: how long a loop that keeps failing waits before its next attempt.
kernel/clock
Package clock abstracts the passage of time so higher layers can inject a deterministic time source in tests instead of coupling to the wall clock.
Package clock abstracts the passage of time so higher layers can inject a deterministic time source in tests instead of coupling to the wall clock.
kernel/collections/cache
Package cache provides a generic, concurrency-safe LRU + TTL cache (Cache[K,V]) — a kernel primitive (stdlib-only, no domain vocabulary).
Package cache provides a generic, concurrency-safe LRU + TTL cache (Cache[K,V]) — a kernel primitive (stdlib-only, no domain vocabulary).
kernel/collections/heap
Package heap provides Heap[T], a binary heap ordered by a comparison function the caller supplies.
Package heap provides Heap[T], a binary heap ordered by a comparison function the caller supplies.
kernel/collections/ring
Package ring — range 0.1.3.* (ADR 0005 kernel/collections/ring block).
Package ring — range 0.1.3.* (ADR 0005 kernel/collections/ring block).
kernel/concur/batcher
Package batcher provides a generic coalescing buffer: items are appended via Add and handed to a deliver closure in batches — flushed eagerly when an item-count or weight cap is reached, on an optional background ticker, or on an explicit Flush / Close.
Package batcher provides a generic coalescing buffer: items are appended via Add and handed to a deliver closure in batches — flushed eagerly when an item-count or weight cap is reached, on an optional background ticker, or on an explicit Flush / Close.
kernel/concur/buffer
Package buffer provides a pooled *[]byte for zero-alloc formatting in hot paths.
Package buffer provides a pooled *[]byte for zero-alloc formatting in hot paths.
kernel/concur/group
Package group — the typed fan-out built on the Group.
Package group — the typed fan-out built on the Group.
kernel/concur/recycler
Package recycler — CappedPool[T] layers a reset-on-Put + cap-discard policy on top of the plain Pool[T] declared in recycler.go.
Package recycler — CappedPool[T] layers a reset-on-Put + cap-discard policy on top of the plain Pool[T] declared in recycler.go.
kernel/concur/singleflight
Package singleflight — the in-flight call record shared by every caller of one key.
Package singleflight — the in-flight call record shared by every caller of one key.
kernel/concur/snapshot
Package snapshot provides Value[T any], a copy-on-write container for read-mostly shared state.
Package snapshot provides Value[T any], a copy-on-write container for read-mostly shared state.
kernel/concur/worker
Package worker — Every layers a ticker loop on top of the LoopDaemon lifecycle.
Package worker — Every layers a ticker loop on top of the LoopDaemon lifecycle.
kernel/errs
Package errs — provides package-level introspection helpers that walk a cause chain and read fields from the deepest *Error encountered.
Package errs — provides package-level introspection helpers that walk a cause chain and read fields from the deepest *Error encountered.
kernel/fs/flock
Package flock takes an exclusive lock on a whole file WITHOUT waiting for it, and gives it back: flock(2) on the Unix kernels that have it, LockFileEx over every byte of the file on Windows (ADR 0081, ADR 0159).
Package flock takes an exclusive lock on a whole file WITHOUT waiting for it, and gives it back: flock(2) on the Unix kernels that have it, LockFileEx over every byte of the file on Windows (ADR 0081, ADR 0159).
kernel/fs/pathchain
Package pathchain resolves a path one component at a time and reports what each component IS, instead of only what the whole path finally names.
Package pathchain resolves a path one component at a time and reports what each component IS, instead of only what the whole path finally names.
kernel/fs/winacl
Package winacl reads a Windows directory's discretionary access control list and answers one question of it: does an identifier meaning ANYBODY — Everyone, Authenticated Users, BUILTIN\Users — hold a right, on the directory itself or on the files that will be created in it?
Package winacl reads a Windows directory's discretionary access control list and answers one question of it: does an identifier meaning ANYBODY — Everyone, Authenticated Users, BUILTIN\Users — hold a right, on the directory itself or on the files that will be created in it?
kernel/plugin
Package plugin answers one question a process-wide registry must ask before it publishes anything: is this value usable as an entry at all?
Package plugin answers one question a process-wide registry must ask before it publishes anything: is this value usable as an entry at all?
kernel/semver
Package semver — the parser: a version cut into what precedence reads, in one pass over its bytes and without a copy of any of them.
Package semver — the parser: a version cut into what precedence reads, in one pass over its bytes and without a copy of any of them.
service/app/cli
Package cli is the command-line engine: it validates a whole command tree once, resolves an argument vector against it, renders the help the tree implies, and returns a typed error carrying an exit status.
Package cli is the command-line engine: it validates a whole command tree once, resolves an argument vector against it, renders the help the tree implies, and returns a typed error carrying an exit status.
service/app/config
Package config — environment-variable Source.
Package config — environment-variable Source.
service/app/events
Package events — hosts the engine: registration, removal, and the copy-on-write membership the dispatch reads.
Package events — hosts the engine: registration, removal, and the copy-on-write membership the dispatch reads.
service/app/health
Package health — hosts Ask, the client half of a readiness probe: the question a container's HEALTHCHECK asks a running process, from an image that has no shell and no curl to ask it with (ADR 0131).
Package health — hosts Ask, the client half of a readiness probe: the question a container's HEALTHCHECK asks a running process, from an image that has no shell and no curl to ask it with (ADR 0131).
service/app/i18n
Package i18n — the RFC 9110 Accept-Language header parser.
Package i18n — the RFC 9110 Accept-Language header parser.
service/app/id
Package id wraps stdlib crypto/rand + the kernel clock as core/app/id.Generator implementations (UUIDv4, UUIDv7, ULID, snowflake, NanoID, KSUID, TypeID).
Package id wraps stdlib crypto/rand + the kernel clock as core/app/id.Generator implementations (UUIDv4, UUIDv7, ULID, snowflake, NanoID, KSUID, TypeID).
service/app/lifecycle
Package lifecycle — hosts Config, the engine's construction parameters.
Package lifecycle — hosts Config, the engine's construction parameters.
service/app/lock
Package lock — the kernel lock the file locker stands on, and what each kernel's version of it means for THIS domain.
Package lock — the kernel lock the file locker stands on, and what each kernel's version of it means for THIS domain.
service/app/mail
Package mail — the addr-spec subset this domain accepts, and the display-name rule the composer depends on.
Package mail — the addr-spec subset this domain accepts, and the display-name rule the composer depends on.
service/app/mail/spool
Package spool — the spool's construction parameters, the defaults their zero values clamp to, and the refusals.
Package spool — the spool's construction parameters, the defaults their zero values clamp to, and the refusals.
service/app/resilience
Package resilience — the exponential backoff every waiting policy computes, re-exported from the kernel package that owns it.
Package resilience — the exponential backoff every waiting policy computes, re-exported from the kernel package that owns it.
service/app/scheduler
Package scheduler — hosts Config, the engine's construction parameters.
Package scheduler — hosts Config, the engine's construction parameters.
service/app/statemachine
Package statemachine — hosts the agenda: when each entity's next automatic transition falls due, the entities written since the loop last looked, and the backoff of those whose transition failed.
Package statemachine — hosts the agenda: when each entity's next automatic transition falls due, the entities written since the loop last looked, and the backoff of those whose transition failed.
service/app/validation
Package validation — the ordered-value bounds constraints.
Package validation — the ordered-value bounds constraints.
service/app/view
Package view — the cycle detection the trust-type scan needs, kept in its own file so scan.go holds the walk and nothing else.
Package view — the cycle detection the trust-type scan needs, kept in its own file so scan.go holds the walk and nothing else.
service/crypto/aead/aesgcm
Package aesgcm registers the "aes-256-gcm" AEAD scheme (ADR 0013).
Package aesgcm registers the "aes-256-gcm" AEAD scheme (ADR 0013).
service/crypto/aead/streamaead
Package streamaead (reader.go) — the streaming-AEAD read path: header verify, chunk-by-chunk decrypt with hold-back, and one-byte EOF look-ahead.
Package streamaead (reader.go) — the streaming-AEAD read path: header verify, chunk-by-chunk decrypt with hold-back, and one-byte EOF look-ahead.
service/crypto/agree/x25519
Package x25519 registers the "x25519" key-agreement scheme (ADR 0014).
Package x25519 registers the "x25519" key-agreement scheme (ADR 0014).
service/crypto/hash/stdhash
Package stdhash — CRC-32C (Castagnoli) scheme registration (see stdhash.go).
Package stdhash — CRC-32C (Castagnoli) scheme registration (see stdhash.go).
service/crypto/kdf/hkdfsha256
Package hkdfsha256 registers the "hkdf-sha256" key-derivation scheme (ADR 0013).
Package hkdfsha256 registers the "hkdf-sha256" key-derivation scheme (ADR 0013).
service/crypto/kdf/keytree
Package keytree implements path-addressed hierarchical key derivation.
Package keytree implements path-addressed hierarchical key derivation.
service/crypto/key/jwk
Package jwk — the bridge between a JWK and the key encodings the SDK's own schemes already speak, so adopting the format costs no re-encoding by hand:
Package jwk — the bridge between a JWK and the key encodings the SDK's own schemes already speak, so adopting the format costs no re-encoding by hand:
service/crypto/key/keyenvelope
Package keyenvelope wraps a symmetric DEK at rest under a passphrase.
Package keyenvelope wraps a symmetric DEK at rest under a passphrase.
service/crypto/mac/hmacsha2
Package hmacsha2 registers the "hmac-sha256" MAC scheme (ADR 0014).
Package hmacsha2 registers the "hmac-sha256" MAC scheme (ADR 0014).
service/crypto/password/commonpw
Package commonpw holds the ten thousand most common passwords, and says whether a password is one of them (ADR 0143 §D10).
Package commonpw holds the ten thousand most common passwords, and says whether a password is one of them (ADR 0143 §D10).
service/crypto/password/pbkdf2pw
Package pbkdf2pw registers the "pbkdf2-sha256" password-hashing scheme (ADR 0013).
Package pbkdf2pw registers the "pbkdf2-sha256" password-hashing scheme (ADR 0013).
service/crypto/sign/ecdsasig
Package ecdsasig registers the "ecdsa-p256" signature scheme (ADR 0013).
Package ecdsasig registers the "ecdsa-p256" signature scheme (ADR 0013).
service/crypto/sign/ed25519sig
Package ed25519sig registers the "ed25519" signature scheme (ADR 0013).
Package ed25519sig registers the "ed25519" signature scheme (ADR 0013).
service/data/cache
Package cache — hosts the compile-time interface assertions, keeping them out of the production source so the runtime binary carries no diagnostic-only declarations.
Package cache — hosts the compile-time interface assertions, keeping them out of the production source so the runtime binary carries no diagnostic-only declarations.
service/data/codec/asn1
Package asn1 wraps encoding/asn1 as a codec.Codec implementation.
Package asn1 wraps encoding/asn1 as a codec.Codec implementation.
service/data/codec/baseenc
Package baseenc — Base45 (RFC 9285) alphabet codec.
Package baseenc — Base45 (RFC 9285) alphabet codec.
service/data/codec/bson
Package bson is the BSON codec: a native implementation of the BSON 1.1 specification (bsonspec.org) behind the universal core/data/codec.Codec dispatch, written with the standard library alone.
Package bson is the BSON codec: a native implementation of the BSON 1.1 specification (bsonspec.org) behind the universal core/data/codec.Codec dispatch, written with the standard library alone.
service/data/codec/cbor
Package cbor is the SDK's CBOR codec (RFC 8949), written on the standard library alone.
Package cbor is the SDK's CBOR codec (RFC 8949), written on the standard library alone.
service/data/codec/csv
Package csv wraps encoding/csv as a codec.Codec implementation.
Package csv wraps encoding/csv as a codec.Codec implementation.
service/data/codec/flatbuffers
Package flatbuffers implements a thin passthrough codec for already-encoded FlatBuffer payloads.
Package flatbuffers implements a thin passthrough codec for already-encoded FlatBuffer payloads.
service/data/codec/form
Package form implements application/x-www-form-urlencoded as a codec.Codec — the encoding every HTML form POSTs and every query string carries.
Package form implements application/x-www-form-urlencoded as a codec.Codec — the encoding every HTML form POSTs and every query string carries.
service/data/codec/json
Package json wraps encoding/json as a codec.Codec implementation registered under Format("json").
Package json wraps encoding/json as a codec.Codec implementation registered under Format("json").
service/data/codec/jsonpatch
Package jsonpatch computes the structural difference between two JSON documents as RFC 6902 operations — add, remove and replace, each at an RFC 6901 JSON Pointer — with the value each operation writes AND the value it replaces or removes (ADR 0143).
Package jsonpatch computes the structural difference between two JSON documents as RFC 6902 operations — add, remove and replace, each at an RFC 6901 JSON Pointer — with the value each operation writes AND the value it replaces or removes (ADR 0143).
service/data/codec/jsonshape
Package jsonshape — the members encoding/json writes for a struct, resolved by its own rules: json/v2's field walk under the v1 options Go 1.27's encoding/json runs with.
Package jsonshape — the members encoding/json writes for a struct, resolved by its own rules: json/v2's field walk under the v1 options Go 1.27's encoding/json runs with.
service/data/codec/msgpack
Package msgpack is the MessagePack codec — a native implementation of the specification (github.com/msgpack/msgpack/blob/master/spec.md) on the standard library alone, registered as the "msgpack" Format.
Package msgpack is the MessagePack codec — a native implementation of the specification (github.com/msgpack/msgpack/blob/master/spec.md) on the standard library alone, registered as the "msgpack" Format.
service/data/codec/multipart
Package multipart — boundary recovery and validation.
Package multipart — boundary recovery and validation.
service/data/codec/ndjson
Package ndjson implements newline-delimited JSON as a codec.Codec.
Package ndjson implements newline-delimited JSON as a codec.Codec.
service/data/codec/pem
Package pem wraps encoding/pem as a codec.Codec implementation.
Package pem wraps encoding/pem as a codec.Codec implementation.
service/data/codec/strictjson
Package strictjson — the reader that bounds a document and remembers why it stopped.
Package strictjson — the reader that bounds a document and remembers why it stopped.
service/data/codec/strictjson/httpbody
Package httpbody decodes the JSON body of an HTTP request with the strict decoder of its parent package, adding the three things only an HTTP body has: a bound net/http enforces too, an empty body settled before anything else, and a media type that must declare JSON.
Package httpbody decodes the JSON body of an HTTP request with the strict decoder of its parent package, adding the three things only an HTTP body has: a bound net/http enforces too, an empty body settled before anything else, and a media type that must declare JSON.
service/data/codec/tlv
Package tlv implements a self-describing Type-Length-Value codec.
Package tlv implements a self-describing Type-Length-Value codec.
service/data/codec/toml
Package toml is the TOML codec, written against TOML v1.0.0 (https://toml.io/en/v1.0.0) with the standard library alone.
Package toml is the TOML codec, written against TOML v1.0.0 (https://toml.io/en/v1.0.0) with the standard library alone.
service/data/codec/xml
Package xml wraps encoding/xml as a codec.Codec implementation registered under Format("xml").
Package xml wraps encoding/xml as a codec.Codec implementation registered under Format("xml").
service/data/codec/yaml
Package yaml — the block structure: mappings, sequences, keys and values.
Package yaml — the block structure: mappings, sequences, keys and values.
service/data/docstore
Package docstore — the store's construction parameters, and the refusals a configuration no store could honour gets, the index declarations' included: an IndexSpec is core/data/docstore's, which both engines take (ADR 0160).
Package docstore — the store's construction parameters, and the refusals a configuration no store could honour gets, the index declarations' included: an IndexSpec is core/data/docstore's, which both engines take (ADR 0160).
service/data/queue
Package queue — the consumer engine: the pull loop that runs a Handler on a CONSUMER'S goroutine, which is the third axis of ADR 0053's frontier.
Package queue — the consumer engine: the pull loop that runs a Handler on a CONSUMER'S goroutine, which is the third axis of ADR 0053's frontier.
service/data/sql
Package sql — hosts Config, the parameters every port in this package is built from, and the pool policy it applies.
Package sql — hosts Config, the parameters every port in this package is built from, and the pool policy it applies.
service/data/transform
Package transform — shared decompression bound for the stdlib gzip, flate and zlib schemes.
Package transform — shared decompression bound for the stdlib gzip, flate and zlib schemes.
service/data/vfs
Package vfs — the in-memory filesystem, and the read half of its contract.
Package vfs — the in-memory filesystem, and the read half of its contract.
service/net/client
Package client — the response body size ceiling.
Package client — the response body size ceiling.
service/net/server
Package server — adoption of listeners inherited from a supervisor.
Package server — adoption of listeners inherited from a supervisor.
service/net/sse
Package sse — an event's wire form, as the WHATWG HTML standard's Server-Sent Events format spells it: the encoder that turns a corenet.SSEEventValue into the bytes a stream writes, and a comment into the one frame no client dispatches.
Package sse — an event's wire form, as the WHATWG HTML standard's Server-Sent Events format spells it: the encoder that turns a corenet.SSEEventValue into the bytes a stream writes, and a comment into the one frame no client dispatches.
service/net/static
Package static — what NewHandler refuses in a Config.
Package static — what NewHandler refuses in a Config.
service/net/tlsid
Package tlsid loads TLS and mutual-TLS material into the opaque, redacting identity declared by internal/core/net (ADR 0029).
Package tlsid loads TLS and mutual-TLS material into the opaque, redacting identity declared by internal/core/net (ADR 0029).
service/net/websocket
Package websocket — the closing handshake's payload (RFC 6455 §5.5.1): a two-byte status code and an optional UTF-8 reason, written and read here.
Package websocket — the closing handshake's payload (RFC 6455 §5.5.1): a two-byte status code and an optional UTF-8 reason, written and read here.
service/observe/internal/otlp
Package otlp — common.v1.AnyValue, restricted to the cases the shared attribute model has.
Package otlp — common.v1.AnyValue, restricted to the cases the shared attribute model has.
service/observe/logger
Package logger — declares the chainable Builder API — the low-allocation hot path for callers that care about per-call cost.
Package logger — declares the chainable Builder API — the low-allocation hot path for callers that care about per-call cost.
service/observe/logger/encoder
Package encoder provides concrete Encoder implementations (Text today; NDJSON and JSON to land in follow-up commits).
Package encoder provides concrete Encoder implementations (Text today; NDJSON and JSON to land in follow-up commits).
service/observe/logger/internal/logfile
Package logfile is the hardened open both file sinks share: the append-only sink in internal/service/observe/logger/sink/file and the rotating one in internal/service/observe/logger/writer/rotfile, which re-runs it on every reopen after a rotation.
Package logfile is the hardened open both file sinks share: the append-only sink in internal/service/observe/logger/sink/file and the rotating one in internal/service/observe/logger/writer/rotfile, which re-runs it on every reopen after a rotation.
service/observe/logger/middleware/async
Package async wraps any corelogger.Sink with a non-blocking ring buffer and a single drainer goroutine, decoupling the producer hot path from the (potentially slow) downstream sink.
Package async wraps any corelogger.Sink with a non-blocking ring buffer and a single drainer goroutine, decoupling the producer hot path from the (potentially slow) downstream sink.
service/observe/logger/middleware/encwrite
Package encwrite — declares the Config value type consumed by NewEncWriter.
Package encwrite — declares the Config value type consumed by NewEncWriter.
service/observe/logger/middleware/failover
Package failover implements a sequential-retry Sink that tries downstream sinks in order until one succeeds.
Package failover implements a sequential-retry Sink that tries downstream sinks in order until one succeeds.
service/observe/logger/middleware/multi
Package multi implements a fanout Sink that broadcasts each Write to a fixed list of downstream sinks.
Package multi implements a fanout Sink that broadcasts each Write to a fixed list of downstream sinks.
service/observe/logger/middleware/recover
Package recover — holds the Config struct consumed by NewWithConfig.
Package recover — holds the Config struct consumed by NewWithConfig.
service/observe/logger/middleware/route
Package route implements a predicate-based router Sink.
Package route implements a predicate-based router Sink.
service/observe/logger/middleware/sample
Package sample implements a 1-of-N rate-limiter Sink.
Package sample implements a 1-of-N rate-limiter Sink.
service/observe/logger/middleware/tee
Package tee — declares the Config value type consumed by New.
Package tee — declares the Config value type consumed by New.
service/observe/logger/sink/console
Package console implements a Sink that writes formatted records onto an io.Writer (typically os.Stdout or os.Stderr) under a local mutex so concurrent goroutines emit atomic lines.
Package console implements a Sink that writes formatted records onto an io.Writer (typically os.Stdout or os.Stderr) under a local mutex so concurrent goroutines emit atomic lines.
service/observe/logger/sink/file
Package file implements a Sink that appends formatted records to an on-disk file.
Package file implements a Sink that appends formatted records to an on-disk file.
service/observe/logger/sink/memory
Package memory implements a Sink that retains a defensive snapshot of every RecordEvent it receives in a mutex-guarded slice.
Package memory implements a Sink that retains a defensive snapshot of every RecordEvent it receives in a mutex-guarded slice.
service/observe/logger/sink/syslog
Package syslog — holds the Config struct consumed by NewWithConfig.
Package syslog — holds the Config struct consumed by NewWithConfig.
service/observe/logger/writer/console
Package console registers the "console" writer factory.
Package console registers the "console" writer factory.
service/observe/logger/writer/dbsink
Package dbsink is the driver-AGNOSTIC database sink shell (ADR 0015, gated).
Package dbsink is the driver-AGNOSTIC database sink shell (ADR 0015, gated).
service/observe/logger/writer/file
Package file registers the "file" writer factory.
Package file registers the "file" writer factory.
service/observe/logger/writer/journald
Package journald — the config Decoder making "journald" reachable from a config file via pkg/v1/observe/logger.FromConfig.
Package journald — the config Decoder making "journald" reachable from a config file via pkg/v1/observe/logger.FromConfig.
service/observe/logger/writer/levelgate
Package levelgate provides a Sink decorator that forwards records at or above a minimum severity and silently drops the rest.
Package levelgate provides a Sink decorator that forwards records at or above a minimum severity and silently drops the rest.
service/observe/logger/writer/nettransport
Package nettransport — the transport seams: the ONLY file that touches net / net/http.
Package nettransport — the transport seams: the ONLY file that touches net / net/http.
service/observe/logger/writer/rotfile
Package rotfile — backup-name arithmetic and the per-slot move/gzip helpers split out of rotate.go so each function stays under KTN-FUNC-MAXLOC.
Package rotfile — backup-name arithmetic and the per-slot move/gzip helpers split out of rotate.go so each function stays under KTN-FUNC-MAXLOC.
service/observe/metrics
Package metrics — one instrument name's slot in a collection arena.
Package metrics — one instrument name's slot in a collection arena.
service/observe/profiling
Package profiling — hosts CanonicalName: one spelling for a function, whoever named it.
Package profiling — hosts CanonicalName: one spelling for a function, whoever named it.
service/observe/trace
Package trace — the Tracer's configuration: producing Resource, instrumentation Scope, sampling policy, span destination and clock.
Package trace — the Tracer's configuration: producing Resource, instrumentation Scope, sampling policy, span destination and clock.
service/proc/cgroup
Package cgroup — creates and manages cgroup v2 control groups.
Package cgroup — creates and manages cgroup v2 control groups.
service/proc/childwait
Package childwait decides who receives a child's exit status (ADR 0093).
Package childwait decides who receives a child's exit status (ADR 0093).
service/proc/exec
Package exec — Unix best-effort post-start attributes: scheduling priority (Nice), OOM-killer bias (OOMScoreAdj).
Package exec — Unix best-effort post-start attributes: scheduling priority (Nice), OOM-killer bias (OOMScoreAdj).
service/proc/internal/rlim
Package rlim builds the kernel's resource-limit struct from a soft/hard pair: the one place the proc family turns a coreproc.LimitValue into the syscall.Rlimit that setrlimit(2) and prlimit64(2) read.
Package rlim builds the kernel's resource-limit struct from a soft/hard pair: the one place the proc family turns a coreproc.LimitValue into the syscall.Rlimit that setrlimit(2) and prlimit64(2) read.
service/proc/ipc
Package ipc — the components ABOVE the socket's directory, and who could steer them: ADR 0083's rule, applied where the directory is the whole of the access control (ADR 0148).
Package ipc — the components ABOVE the socket's directory, and who could steer them: ADR 0083's rule, applied where the directory is the whole of the access control (ADR 0148).
service/proc/memlimit
Package memlimit — resolving WHICH cgroup limit files govern this process: where each hierarchy is mounted, which part of the filesystem that mount exposes, which cgroup the process belongs to, and the ancestors whose caps bound it just as effectively.
Package memlimit — resolving WHICH cgroup limit files govern this process: where each hierarchy is mounted, which part of the filesystem that mount exposes, which cgroup the process belongs to, and the ancestors whose caps bound it just as effectively.
service/proc/reaper
Package reaper — the PID1 / subreaper zombie collector backing pkg/v1/proc/reaper.
Package reaper — the PID1 / subreaper zombie collector backing pkg/v1/proc/reaper.
service/proc/rlimit
Package rlimit — applies per-process setrlimit(2) resource ceilings.
Package rlimit — applies per-process setrlimit(2) resource ceilings.
service/proc/self
Package self is what the running process can say about itself: what it was built from (build.go) and what it is doing right now (stats.go).
Package self is what the running process can say about itself: what it was built from (build.go) and what it is doing right now (stats.go).
service/proc/signal
Package signal — Unix Relay: forwards each received signal to a pid or process group via kill(2), where a negative Target addresses the group whose id is its absolute value.
Package signal — Unix Relay: forwards each received signal to a pid or process group via kill(2), where a negative Target addresses the group whose id is its absolute value.
service/proc/systemd/listen
Package listen — Unix socket activation (sd_listen_fds(3) family).
Package listen — Unix socket activation (sd_listen_fds(3) family).
service/proc/systemd/notify
Package notify — the supervisor (listener) side on Linux: SO_PASSCRED.
Package notify — the supervisor (listener) side on Linux: SO_PASSCRED.
service/security/authz
Package authz — hosts the attribute-based evaluator.
Package authz — hosts the attribute-based evaluator.
service/security/redact
Package redact — log attributes rendered as display text.
Package redact — log attributes rendered as display text.
service/security/secret
Package secret — the read-only store over the process environment, with the NAME_FILE convention Docker and Kubernetes secrets use.
Package secret — the read-only store over the process environment, with the NAME_FILE convention Docker and Kubernetes secrets use.
service/security/session
Package session — the components ABOVE the store directory, which no flag on an open can reach.
Package session — the components ABOVE the store directory, which no flag on an open can reach.
service/security/token
Package token — one JWK Set member, with its binding already derived.
Package token — one JWK Set member, with its binding already derived.
core module
kernel module
service module
pkg module
v1/app/cli
Package cli is the public facade for the SDK's command-line domain: the sub-commands, the generated help and the typed exit status that the stdlib's flag package deliberately does not have.
Package cli is the public facade for the SDK's command-line domain: the sub-commands, the generated help and the typed exit status that the stdlib's flag package deliberately does not have.
v1/app/config
Package config is the public facade for the SDK's configuration domain: layer configuration from env + files, Load into a typed struct (later sources override earlier), self-Validator the result, and PollWatcher for cross-OS hot-reload.
Package config is the public facade for the SDK's configuration domain: layer configuration from env + files, Load into a typed struct (later sources override earlier), self-Validator the result, and PollWatcher for cross-OS hot-reload.
v1/app/events
Package events is the public facade for the SDK's IN-PROCESS event bus: one fact is published, and every listener registered for that fact's type reacts to it, in an order you choose, on your goroutine, before Publish returns.
Package events is the public facade for the SDK's IN-PROCESS event bus: one fact is published, and every listener registered for that fact's type reacts to it, in an order you choose, on your goroutine, before Publish returns.
v1/app/health
Package health is the public facade for the SDK's process-health domain: the three probes an orchestrator asks, and the checks that answer them.
Package health is the public facade for the SDK's process-health domain: the three probes an orchestrator asks, and the checks that answer them.
v1/app/i18n
Package i18n is the public facade for the SDK's message-translation domain: a catalogue of translated messages, CLDR plural forms that are right in Polish and Arabic and not only in English, and Accept-Language negotiation that never fails a request.
Package i18n is the public facade for the SDK's message-translation domain: a catalogue of translated messages, CLDR plural forms that are right in Polish and Arabic and not only in English, and Accept-Language negotiation that never fails a request.
v1/app/id
Package id is the public facade for SDK identifier generation.
Package id is the public facade for SDK identifier generation.
v1/app/lifecycle
Package lifecycle is the public facade for the SDK's ordered start/stop domain: components come up in the order you declare them, and go down in the exact reverse.
Package lifecycle is the public facade for the SDK's ordered start/stop domain: components come up in the order you declare them, and go down in the exact reverse.
v1/app/lock
Package lock is the public facade for the SDK's mutual exclusion: named, exclusive, fenced leases over one process or over one machine.
Package lock is the public facade for the SDK's mutual exclusion: named, exclusive, fenced leases over one process or over one machine.
v1/app/mail
Package mail is the public facade for the SDK's electronic-mail domain: build a message as a value, and hand it to a transport that refuses to lie about what it sent.
Package mail is the public facade for the SDK's electronic-mail domain: build a message as a value, and hand it to a transport that refuses to lie about what it sent.
v1/app/mail/spool
Package spool is the public facade for the durable mail outbox: the place a mail waits between the call that wants it sent and the relay that takes it.
Package spool is the public facade for the durable mail outbox: the place a mail waits between the call that wants it sent and the relay that takes it.
v1/app/resilience
Package resilience is the public facade for the SDK's reliability policies: retry, circuit-breaker, rate-limit, bulkhead, timeout, fallback, and hedging.
Package resilience is the public facade for the SDK's reliability policies: retry, circuit-breaker, rate-limit, bulkhead, timeout, fallback, and hedging.
v1/app/scheduler
Package scheduler is the public facade for the SDK's time-driven execution domain: a five-field POSIX cron parser, a fixed-interval schedule, and an engine that fires jobs on either.
Package scheduler is the public facade for the SDK's time-driven execution domain: a five-field POSIX cron parser, a fixed-interval schedule, and an engine that fires jobs on either.
v1/app/statemachine
Package statemachine is a state-machine engine over stored entities (ADR 0120): declare the states an entity goes through and the transitions between them, hand the engine your store, and it moves entities along — on the events you fire, and by itself on timers, deadlines and guards.
Package statemachine is a state-machine engine over stored entities (ADR 0120): declare the states an entity goes through and the transitions between them, hand the engine your store, and it moves entities along — on the events you fire, and by itself on timers, deadlines and guards.
v1/app/validation
Package validation is the public facade for the SDK's value-checking domain: a small set of constraints, the combinators that compose them, and a struct-tag front end — all producing one Report that says WHERE each failure is and WHY.
Package validation is the public facade for the SDK's value-checking domain: a small set of constraints, the combinators that compose them, and a struct-tag front end — all producing one Report that says WHERE each failure is and WHY.
v1/app/view
Package view is the public facade for the SDK's server-side rendering: a named template plus a data value become a complete HTML document, escaped according to the context each value lands in.
Package view is the public facade for the SDK's server-side rendering: a named template plus a data value become a complete HTML document, escaped according to the context each value lands in.
v1/clock
Package clock is the public facade for the SDK's time port: the interfaces a caller injects a time source through, the production clock, and the manual clock a test drives by hand.
Package clock is the public facade for the SDK's time port: the interfaces a caller injects a time source through, the production clock, and the manual clock a test drives by hand.
v1/collections/heap
Package heap is a binary heap of any element type, ordered by a comparison you give it: Push in O(log n), Pop the element that sorts first in O(log n), Peek at it in O(1).
Package heap is a binary heap of any element type, ordered by a comparison you give it: Push in O(log n), Pop the element that sorts first in O(log n), Peek at it in O(1).
v1/collections/ring
Package ring is a bounded, lock-free queue for exactly ONE producer and exactly ONE consumer: a fixed number of slots, a write that refuses when they are full, and a read that refuses when they are empty — neither ever blocks.
Package ring is a bounded, lock-free queue for exactly ONE producer and exactly ONE consumer: a fixed number of slots, a write that refuses when they are full, and a read that refuses when they are empty — neither ever blocks.
v1/concur/batcher
Package batcher coalesces items into batches: Add appends, and a deliver function you supply receives them a batch at a time — when a count or a weight cap is reached, on a ticker, or when you Flush or Close.
Package batcher coalesces items into batches: Add appends, and a deliver function you supply receives them a batch at a time — when a count or a weight cap is reached, on a ticker, or when you Flush or Close.
v1/concur/group
Package group runs a set of tasks concurrently and gives their caller one place to wait: one bounded degree of parallelism, one error — the first, or every one of them — and the panic a child goroutine would otherwise take the whole process down with, delivered to the waiter instead.
Package group runs a set of tasks concurrently and gives their caller one place to wait: one bounded degree of parallelism, one error — the first, or every one of them — and the panic a child goroutine would otherwise take the whole process down with, delivered to the waiter instead.
v1/concur/recycler
Package recycler pools objects for reuse, typed: Get borrows one, Put hands it back, and the pool never hands out a value of the wrong type.
Package recycler pools objects for reuse, typed: Get borrows one, Put hands it back, and the pool never hands out a value of the wrong type.
v1/concur/singleflight
Package singleflight deduplicates concurrent work that names the same key: of N goroutines asking for the same thing at the same time, exactly one does the work and all N receive its result.
Package singleflight deduplicates concurrent work that names the same key: of N goroutines asking for the same thing at the same time, exactly one does the work and all N receive its result.
v1/concur/snapshot
Package snapshot holds read-mostly shared state copy-on-write: readers Load the current value with one atomic load — no lock, no allocation — and writers publish a whole new value, serialised so that a read-modify-write never loses a concurrent one.
Package snapshot holds read-mostly shared state copy-on-write: readers Load the current value with one atomic load — no lock, no allocation — and writers publish a whole new value, serialised so that a read-modify-write never loses a concurrent one.
v1/concur/worker
Package worker starts a background goroutine you can stop and join: one loop, an idempotent Stop that signals it and waits for it to return, and a Done channel closed once it has.
Package worker starts a background goroutine you can stop and join: one loop, an idempotent Stop that signals it and waits for it to return, and a Done channel closed once it has.
v1/crypto
Package crypto is the authenticated-encryption facade: Seal and Open with a hidden nonce.
Package crypto is the authenticated-encryption facade: Seal and Open with a hidden nonce.
v1/crypto/agree
Package agree is the key-agreement facade: establish a shared symmetric key between two parties from their keypairs.
Package agree is the key-agreement facade: establish a shared symmetric key between two parties from their keypairs.
v1/crypto/hash
Package hash is the fingerprint / content-addressing hashing facade.
Package hash is the fingerprint / content-addressing hashing facade.
v1/crypto/kdf
Package kdf is the key-derivation facade for KEY SEPARATION.
Package kdf is the key-derivation facade for KEY SEPARATION.
v1/crypto/mac
Package mac is the detached message-authentication facade.
Package mac is the detached message-authentication facade.
v1/crypto/password
Package password is the password-storage facade: slow, salted, self-describing hashes with transparent upgrade-on-verify.
Package password is the password-storage facade: slow, salted, self-describing hashes with transparent upgrade-on-verify.
v1/crypto/sign
Package sign is the detached digital-signature facade.
Package sign is the detached digital-signature facade.
v1/data/cache
Package cache is the public facade for the SDK's caching, and it offers two surfaces because there are two different jobs.
Package cache is the public facade for the SDK's caching, and it offers two surfaces because there are two different jobs.
v1/data/codec
Package codec is the universal encoder/decoder dispatch facade.
Package codec is the universal encoder/decoder dispatch facade.
v1/data/codec/asn1
Package asn1 registers the ASN.1 DER codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package asn1 registers the ASN.1 DER codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/baseenc
Package baseenc registers the base-N codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package baseenc registers the base-N codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/bson
Package bson is BSON, MongoDB's binary document format, implemented with the standard library alone.
Package bson is BSON, MongoDB's binary document format, implemented with the standard library alone.
v1/data/codec/cbor
Package cbor registers the CBOR codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package cbor registers the CBOR codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/csv
Package csv registers the CSV codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package csv registers the CSV codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/flatbuffers
Package flatbuffers registers the FlatBuffers codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package flatbuffers registers the FlatBuffers codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/form
Package form registers the application/x-www-form-urlencoded codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package form registers the application/x-www-form-urlencoded codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/json
Package json registers the JSON codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package json registers the JSON codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/jsonpatch
Package jsonpatch computes the structural difference between two JSON documents as RFC 6902 operations — add, remove and replace, each at an RFC 6901 JSON Pointer — with the value each operation writes and the value it replaces or removes (ADR 0143).
Package jsonpatch computes the structural difference between two JSON documents as RFC 6902 operations — add, remove and replace, each at an RFC 6901 JSON Pointer — with the value each operation writes and the value it replaces or removes (ADR 0143).
v1/data/codec/jsonshape
Package jsonshape describes how values of a Go type look on the wire under encoding/json — the JSON kind each value takes, the members an object has and under which names, which may be missing and which may be null — for a reader to show: an API's documentation, a developer console, a schema generator (ADR 0133).
Package jsonshape describes how values of a Go type look on the wire under encoding/json — the JSON kind each value takes, the members an object has and under which names, which may be missing and which may be null — for a reader to show: an API's documentation, a developer console, a schema generator (ADR 0133).
v1/data/codec/msgpack
Package msgpack registers the MessagePack codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package msgpack registers the MessagePack codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/multipart
Package multipart registers the multipart/form-data codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package multipart registers the multipart/form-data codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/ndjson
Package ndjson registers the NDJSON codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package ndjson registers the NDJSON codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/pem
Package pem registers the PEM codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package pem registers the PEM codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/strictjson
Package strictjson decodes exactly one JSON document into a Go value, within a byte bound, refusing what a permissive decoder lets through — and no refusal ever repeats a byte of the document.
Package strictjson decodes exactly one JSON document into a Go value, within a byte bound, refusing what a permissive decoder lets through — and no refusal ever repeats a byte of the document.
v1/data/codec/strictjson/httpbody
Package httpbody decodes the JSON body of an HTTP request with the strict decoder of github.com/kitsunium/sdk/pkg/v1/data/codec/strictjson, adding what only an HTTP body has.
Package httpbody decodes the JSON body of an HTTP request with the strict decoder of github.com/kitsunium/sdk/pkg/v1/data/codec/strictjson, adding what only an HTTP body has.
v1/data/codec/tlv
Package tlv registers the TLV codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package tlv registers the TLV codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/toml
Package toml registers the TOML codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package toml registers the TOML codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/xml
Package xml registers the XML codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package xml registers the XML codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/codec/yaml
Package yaml registers the YAML codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
Package yaml registers the YAML codec with the SDK's codec registry — and no other codec — when it is imported (ADR 0134):
v1/data/docstore
Package docstore is the public facade for the SDK's document store: typed, keyed JSON documents with unique and multi-valued secondary indexes, kept in memory or persisted to a filesystem, every write durable before it returns.
Package docstore is the public facade for the SDK's document store: typed, keyed JSON documents with unique and multi-valued secondary indexes, kept in memory or persisted to a filesystem, every write durable before it returns.
v1/data/queue
Package queue is the public facade for the SDK's ASYNCHRONOUS, DURABLE message queue: one process publishes work, another process picks it up later, and a crash in between loses nothing.
Package queue is the public facade for the SDK's ASYNCHRONOUS, DURABLE message queue: one process publishes work, another process picks it up later, and a crash in between loses nothing.
v1/data/semver
Package semver orders and reads version strings under Semantic Versioning 2.0.0, written the way Go writes them — with a leading "v" — and recognises Go pseudo-versions.
Package semver orders and reads version strings under Semantic Versioning 2.0.0, written the way Go writes them — with a leading "v" — and recognises Go pseudo-versions.
v1/data/sql
Package sql is the public facade for the SDK's relational-database domain: transaction ownership, a pool policy, a health check and a migration runner, over the standard library's database/sql.
Package sql is the public facade for the SDK's relational-database domain: transaction ownership, a pool policy, a health check and a migration runner, over the standard library's database/sql.
v1/data/transform
Package transform compresses and decompresses bytes with the SDK's compressors, without the codec package (ADR 0014).
Package transform compresses and decompresses bytes with the SDK's compressors, without the codec package (ADR 0014).
v1/data/vfs
Package vfs is the public facade for the SDK's filesystem domain: reading stays io/fs, writing gets a contract, and publishing a file becomes one call that either replaces it completely or changes nothing at all.
Package vfs is the public facade for the SDK's filesystem domain: reading stays io/fs, writing gets a contract, and publishing a file becomes one call that either replaces it completely or changes nothing at all.
v1/errs
Package errs is the public facade for SDK errors — both introspection (this file) and construction (New, Wrap, the Field helpers, and the application Code range, in construct.go).
Package errs is the public facade for SDK errors — both introspection (this file) and construction (New, Wrap, the Field helpers, and the application Code range, in construct.go).
v1/net/client
Package client is the outbound half of the SDK's network domain (ADR 0029): an HTTP client whose posture is enforced by the transport rather than by the call site.
Package client is the outbound half of the SDK's network domain (ADR 0029): an HTTP client whose posture is enforced by the transport rather than by the call site.
v1/net/server
Package server — the two group options only an HTTP group reads: the header phase's own deadline and the header size cap.
Package server — the two group options only an HTTP group reads: the header phase's own deadline and the header size cap.
v1/net/sse
Package sse is the server side of Server-Sent Events: a unidirectional server→client stream over an ordinary HTTP response.
Package sse is the server side of Server-Sent Events: a unidirectional server→client stream over an ordinary HTTP response.
v1/net/static
Package static serves a tree of files — a single-page application, a documentation site, an embed.FS — over HTTP: what http.FileServerFS does, and what it does not (ADR 0130).
Package static serves a tree of files — a single-page application, a documentation site, an embed.FS — over HTTP: what http.FileServerFS does, and what it does not (ADR 0130).
v1/net/tlsid
Package tlsid builds TLS and mutual-TLS identities for the SDK's network domain (ADR 0029), from files on disk or from material already in memory.
Package tlsid builds TLS and mutual-TLS identities for the SDK's network domain (ADR 0029), from files on disk or from material already in memory.
v1/net/websocket
Package websocket is the server side of RFC 6455: an HTTP request upgraded into a bidirectional, message-oriented connection over the same socket.
Package websocket is the server side of RFC 6455: an HTTP request upgraded into a bidirectional, message-oriented connection over the same socket.
v1/observe/logger
Package logger — re-exports the chainable Builder API and the slice-overload LogAttrs entry point.
Package logger — re-exports the chainable Builder API and the slice-overload LogAttrs entry point.
v1/observe/logger/slogbridge
Package slogbridge — converts slog levels and attributes to their SDK peers.
Package slogbridge — converts slog levels and attributes to their SDK peers.
v1/observe/logger/writer
Package writer activates the dependency-free logger writers — "console", "file", and "rotfile" — by blank-importing their service factory packages.
Package writer activates the dependency-free logger writers — "console", "file", and "rotfile" — by blank-importing their service factory packages.
v1/observe/metrics
Package metrics is the public facade for the SDK's observability domain — the natural twin of the logger, shaped on the OpenTelemetry metrics DATA MODEL.
Package metrics is the public facade for the SDK's observability domain — the natural twin of the logger, shaped on the OpenTelemetry metrics DATA MODEL.
v1/observe/profiling
Package profiling captures and reads the running process's own profiles (ADR 0121): its CPU over a bounded window, its live heap, and its goroutines — decoded, folded onto owners you name, and grouped.
Package profiling captures and reads the running process's own profiles (ADR 0121): its CPU over a bounded window, its live heap, and its goroutines — decoded, folded onto owners you name, and grouped.
v1/observe/trace
Package trace is distributed tracing: the third pillar of observability beside github.com/kitsunium/sdk/pkg/v1/observe/logger and github.com/kitsunium/sdk/pkg/v1/observe/metrics.
Package trace is distributed tracing: the third pillar of observability beside github.com/kitsunium/sdk/pkg/v1/observe/logger and github.com/kitsunium/sdk/pkg/v1/observe/metrics.
v1/proc
Package proc is the capability-preflight facade for the process-supervision domain.
Package proc is the capability-preflight facade for the process-supervision domain.
v1/proc/cgroup
Package cgroup creates and manages cgroup v2 control groups to confine a process tree's memory, CPU, pids, and IO.
Package cgroup creates and manages cgroup v2 control groups to confine a process tree's memory, CPU, pids, and IO.
v1/proc/ipc
Package ipc is a private socket between processes of one machine — a daemon and the short-lived clients that talk to it, a product and the tool that attaches to it (ADR 0148).
Package ipc is a private socket between processes of one machine — a daemon and the short-lived clients that talk to it, a product and the tool that attaches to it (ADR 0148).
v1/proc/memlimit
Package memlimit derives the Go runtime soft memory limit from the control group allowance governing this process, and installs it.
Package memlimit derives the Go runtime soft memory limit from the control group allowance governing this process, and installs it.
v1/proc/process
Package process is the public facade for the SDK's keystone process-spawn primitive: it starts a child process under explicit credentials, in its own process group and session, and returns a handle that can wait for exit, signal the leader or its whole group, and stop the group gracefully with a SIGTERM→SIGKILL escalation.
Package process is the public facade for the SDK's keystone process-spawn primitive: it starts a child process under explicit credentials, in its own process group and session, and returns a handle that can wait for exit, signal the leader or its whole group, and stop the group gracefully with a SIGTERM→SIGKILL escalation.
v1/proc/reaper
Package reaper is the PID1 / subreaper zombie-collector facade.
Package reaper is the PID1 / subreaper zombie-collector facade.
v1/proc/rlimit
Package rlimit applies per-process resource ceilings via setrlimit(2) / prlimit64(2).
Package rlimit applies per-process resource ceilings via setrlimit(2) / prlimit64(2).
v1/proc/signal
Package signal is the typed signal toolbox: parse, subscribe, and forward OS signals through one ergonomic surface.
Package signal is the typed signal toolbox: parse, subscribe, and forward OS signals through one ergonomic surface.
v1/proc/systemd/listen
Package listen is the public facade for systemd-style socket activation (sd_listen_fds(3)): a service recovers already-bound listening sockets handed to it by an activator, and an activator hands sockets to a child it spawns.
Package listen is the public facade for systemd-style socket activation (sd_listen_fds(3)): a service recovers already-bound listening sockets handed to it by an activator, and an activator hands sockets to a child it spawns.
v1/proc/systemd/notify
Package notify is the public facade for the systemd sd_notify(3) readiness/watchdog protocol.
Package notify is the public facade for the systemd sd_notify(3) readiness/watchdog protocol.
v1/security/authz
Package authz is the public facade for the SDK's authorization domain: it answers "may this subject do this to that", and nothing else.
Package authz is the public facade for the SDK's authorization domain: it answers "may this subject do this to that", and nothing else.
v1/security/redact
Package redact renders values, JSON documents, text and log attributes for DISPLAY with their secrets replaced, within a byte bound, never touching what it is given.
Package redact renders values, JSON documents, text and log attributes for DISPLAY with their secrets replaced, within a byte bound, never touching what it is given.
v1/security/secret
Package secret is the public facade for the SDK's secret domain (ADR 0096): a Value that no rendering writes down, a Store that keeps named secrets as numbered versions, a Keyring that turns those versions into keys, and a Rotator that mints new ones on a schedule.
Package secret is the public facade for the SDK's secret domain (ADR 0096): a Value that no rendering writes down, a Store that keeps named secrets as numbered versions, a Keyring that turns those versions into keys, and a Rotator that mints new ones on a schedule.
v1/security/session
Package session is the public facade for the SDK's server-side session domain: an opaque identifier, a store that owns its lifetime, and a sealer that renders it as a cookie value.
Package session is the public facade for the SDK's server-side session domain: an opaque identifier, a store that owns its lifetime, and a sealer that renders it as a cookie value.
v1/security/token
Package token — the dotted-quad codes a consumer routes on.
Package token — the dotted-quad codes a consumer routes on.
v1/app module
v1/concur module
v1/data module
v1/net module
v1/observe module
v1/security module
third-party
aws module
codec/hcl module
codec/yaml module
db/redis module
nats module
transform module
x-crypto module
tools
sdkguard module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL