Help us shape the future of Go! Take the 2026 Go Developer Survey

internal/

directory
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2026 License: GPL-3.0

Directories

Path Synopsis
api
Package api serves the client and admin surfaces through policy-classed registrations, plus a fixed loopback health endpoint.
Package api serves the client and admin surfaces through policy-classed registrations, plus a fixed loopback health endpoint.
dto
Package dto declares every response body the API can send, so nothing else can reach a caller.
Package dto declares every response body the API can send, so nothing else can reach a caller.
Package app wires configuration, logging, metrics, handlers and listeners into the running service.
Package app wires configuration, logging, metrics, handlers and listeners into the running service.
Package attach is the content policy for downloaded attachments: the served type, the format word, the image normaliser and the MP4 scrub.
Package attach is the content policy for downloaded attachments: the served type, the format word, the image normaliser and the MP4 scrub.
Package backup writes encrypted backups of both databases under backups/ in the data directory; it holds only an age recipient, so the service can never read a backup back.
Package backup writes encrypted backups of both databases under backups/ in the data directory; it holds only an age recipient, so the service can never read a backup back.
Package buildinfo reports the version, VCS state and flavour of the running binary.
Package buildinfo reports the version, VCS state and flavour of the running binary.
Package config turns an injected environment into a validated configuration or a startup refusal.
Package config turns an injected environment into a validated configuration or a startup refusal.
Package cursor seals pagination positions and message references to one client and one request shape, so a caller can hand them back but never read, forge or reuse them elsewhere, and seals media references to one message.
Package cursor seals pagination positions and message references to one client and one request shape, so a caller can hand them back but never read, forge or reuse them elsewhere, and seals media references to one message.
Package engine is the WhatsApp engine without the protocol library: the client boundary, plain-data events, the supervisor, the durable ingest pipeline and the history worker.
Package engine is the WhatsApp engine without the protocol library: the client boundary, plain-data events, the supervisor, the durable ingest pipeline and the history worker.
wa
Package wa is the only user of the WhatsApp protocol library: it implements the engine's client boundary over a whatsmeow client, translates the library's events into the engine's plain data, guards pairing and caps downloads.
Package wa is the only user of the WhatsApp protocol library: it implements the engine's client boundary over a whatsmeow client, translates the library's events into the engine's plain data, guards pairing and caps downloads.
wa/internal/mediasrc
Package mediasrc declares the attachment source the adapter's media download takes: only Wrap puts a message in one, and the zero value carries none.
Package mediasrc declares the attachment source the adapter's media download takes: only Wrap puts a message in one, and the zero value carries none.
Package keys owns the keys directory of the data directory: it creates and checks the master key, keeps the retired ones, replaces the master on rotation and derives every purpose key.
Package keys owns the keys directory of the data directory: it creates and checks the master key, keeps the retired ones, replaces the master on rotation and derives every purpose key.
Package listeners is the only package that opens sockets: named plain-HTTP listeners served by hardened servers.
Package listeners is the only package that opens sockets: named plain-HTTP listeners served by hardened servers.
listenertest
Package listenertest reports the TCP sockets the calling process holds in the listening state.
Package listenertest reports the TCP sockets the calling process holds in the listening state.
Package logx is the one path from a logger to its output: fail-closed attribute rendering over a writer that redacts tokens, pseudonymises chat identifiers and drops lines carrying XML.
Package logx is the one path from a logger to its output: fail-closed attribute rendering over a writer that redacts tokens, pseudonymises chat identifiers and drops lines carrying XML.
Package metrics is a small registry of counters and gauges with Prometheus text exposition.
Package metrics is a small registry of counters and gauges with Prometheus text exposition.
Package notify is the one place that emits operational events: one fixed-shape JSON line on standard output for each, also posted, signed, to an optional webhook.
Package notify is the one place that emits operational events: one fixed-shape JSON line on standard output for each, also posted, signed, to an optional webhook.
Package policy decides what an authenticated caller may do and mints the grants that prove it.
Package policy decides what an authenticated caller may do and mints the grants that prove it.
internal/seal
Package seal declares the chat, grant and credential types whose values only its constructors can build.
Package seal declares the chat, grant and credential types whose values only its constructors can build.
Package ratelimit keeps one token bucket per key and weighted sliding-hour logs on an injected clock, and answers at once, never queueing a caller.
Package ratelimit keeps one token bucket per key and weighted sliding-hour logs on an injected clock, and answers at once, never queueing a caller.
Package safego starts goroutines and recovers panics without exposing panic values.
Package safego starts goroutines and recovers panics without exposing panic values.
Package sanitize removes the characters that let third-party text hide, reorder or rewrite what a reader or a terminal shows.
Package sanitize removes the characters that let third-party text hide, reorder or rewrite what a reader or a terminal shows.
Package sender sends one text message for a client that holds a write grant, at most once per idempotency key.
Package sender sends one text message for a client that holds a write grant, at most once per idempotency key.
Package stage owns the staging directory of the data directory: it admits one disk spool at a time and seals every 32 KiB sector of it with AES-256-GCM under a key held only in memory.
Package stage owns the staging directory of the data directory: it admits one disk spool at a time and seals every 32 KiB sector of it with AES-256-GCM under a key held only in memory.
store
admin
Package admin holds the archive's administrative side: the status counters, the clients with their cached credentials, the hash-chained audit table and the chat listing.
Package admin holds the archive's administrative side: the status counters, the clients with their cached credentials, the hash-chained audit table and the chat listing.
ingest
Package ingest owns archive.db: its schema, and the write side through which the engine records WhatsApp traffic with every identifier a canonical chat.
Package ingest owns archive.db: its schema, and the write side through which the engine records WhatsApp traffic with every identifier a canonical chat.
inspect
Package inspect checks read-only copies of the archive and the device store taken from a backup and reports counts, never an identifier.
Package inspect checks read-only copies of the archive and the device store taken from a backup and reports counts, never an identifier.
internal/db
Package db is the only holder of a database handle: it opens a SQLite file of the data directory with verified pragmas under an exclusive lock, keeps its one connection alive, and runs every call under a deadline.
Package db is the only holder of a database handle: it opens a SQLite file of the data directory with verified pragmas under an exclusive lock, keeps its one connection alive, and runs every call under a deadline.
scoped
Package scoped is the archive's read side: every method takes a read grant first, resolves scope in the query itself, and returns rows that never marshal to JSON.
Package scoped is the archive's read side: every method takes a read grant first, resolves scope in the query itself, and returns rows that never marshal to JSON.
session
Package session owns session.db: the protocol library's device store, kept in a SQLite file opened with the same checks, settings and lock as the archive.
Package session owns session.db: the protocol library's device store, kept in a SQLite file opened with the same checks, settings and lock as the archive.
Package token generates, parses and hashes admin and client bearer tokens, and compares client token digests in constant time.
Package token generates, parses and hashes admin and client bearer tokens, and compares client token digests in constant time.

Jump to

Keyboard shortcuts

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