Skip to content
Jennifer Programming Language

Module API reference

One page per shipped module, generated from the module's own doc comments. This is the exact, always-current public surface (every exported function, struct, enum, and constant). For prose, rationale, and runnable examples, see the module guides.

The whole reference as a single PDF: jennifer-module-api.pdf.

ModuleSummary
acmeAn ACME (RFC 8555) client: obtain and renew TLS certificates from Let's Encrypt and compatible CAs.
amqpAn AMQP 0-9-1 client over net for RabbitMQ and compatible brokers.
ansiTerminal styling as explicit string wrappers.
argsA declarative command-line argument parser, at the common surface of Python's argparse plus the features an argparse user misses immediately: typed flags (long + short), defaults, required args, ...
barcodeGenerate scannable barcodes as images (not printer commands - the complement to label, which emits printer-native barcode commands).
bloomA Bloom filter: a compact, probabilistic set.
cronParse and evaluate cron expressions - the five-field schedule spec minute hour day-of-month month day-of-week.
csvRFC 4180 comma-separated values: parse text into rows of fields and format rows back into text, with a quoting-aware hand-written scanner.
discordPost messages to a Discord channel through a channel Webhook, on top of the http client - a sibling of gotify / slack.
docblockA Jennifer doc-comment parser.
dotGraphviz DOT graph description: build a graph of nodes and edges with attributes and render it to .dot text for an external Graphviz tool to lay out and draw (dot -Tsvg graph.dot > graph.svg).
dotenvRead .env configuration files - the KEY=VALUE lines that keep secrets and settings out of source - with layered profiles and ${VAR} interpolation.
feedWeb syndication feeds: build and parse both RSS 2.0 and Atom 1.0 through one module.
flatdbA file-backed JSON document store.
fontA pure-Jennifer TrueType / OpenType (SFNT) font parser: read a .ttf / .otf from bytes and expose its metrics, character map, and glyph outlines.
gotifyPush notifications to a Gotify server (https://gotify.net), on top of the http client.
gpioRaspberry-Pi (and any Linux SBC) GPIO over sysfs.
graphqlA thin GraphQL client over http / rest.
htmlBuild an HTML element tree and render it to a correctly escaped HTML5 string.
httpAn HTTP/1.1 client over the net system library.
icalBuild and parse iCalendar (RFC 5545): a Calendar holding Events (VEVENT) and Todos (VTODO), encoded to a VCALENDAR and parsed back.
idnaInternationalized domain names: convert a Unicode domain to its ASCII-compatible (xn--) form and back, over a Punycode (RFC 3492) core.
imapAn IMAP4rev1 client (RFC 3501): tagged commands and untagged "*" responses over the net system library, with plaintext / implicit TLS / STARTTLS and auth by LOGIN, XOAUTH2, CRAM-MD5, or SCRAM-SHA...
influxdbAn InfluxDB client over http for both major API generations: write measurements as line-protocol points and run queries, getting back a parsed result.
ipnetIP addresses and CIDR networks, IPv4 and IPv6.
jsonlJSON Lines (JSONL / NDJSON): newline-delimited JSON, one independent value per line.
jsonrpcJSON-RPC 2.0 (https://www.jsonrpc.org/specification) over HTTP: a client that calls remote methods, and a transport-agnostic server handle that dispatches an incoming request to the entry...
jwtJSON Web Tokens (RFC 7519): sign, verify, and decode compact JWTs.
kvstoreA backend selector for a key/value store with per-key TTL: one Store value is one of three backends - a memcache connection, a redis connection, or the in-process kv library - and dispatche...
labelDescribe and print labels for industrial label printers.
ldapAn LDAP v3 client and a lightweight, read-only directory server (RFC 4511), over TCP with the wire messages built and parsed as ASN.1 BER (the asn1 library) on the net transport.
logLeveled, structured logging.
markdownA lightweight Markdown renderer for a small CommonMark subset: ATX headings, bold / italic emphasis, inline code, links, images, fenced code blocks, unordered / ordered lists (nested by indenta...
mcpModel Context Protocol (https://modelcontextprotocol.io) - the stateless JSON-RPC 2.0 surface an LLM host and an MCP peer speak.
memcacheA client for a memcached server, speaking its classic text protocol over the net system library.
mikrotikA MikroTik RouterOS API client over net (not SSH).
mimeBuild and parse MIME messages (RFC 5322 headers + RFC 2045/2046 bodies): a header-and-boundary structure that is exactly the text orchestration a .j module does well.
mqttAn MQTT 3.1.1 publish/subscribe client over the net system library - the same "protocol clients are modules, net is the transport" line the other network clients follow.
multipartBuild and parse multipart/form-data bodies (RFC 7578) - the file-upload counterpart to mime's email multipart.
ntpA simple SNTP client (RFC 4330 / 5905): query a time server over UDP and get back its time plus the local clock offset and round-trip delay.
oauthA generic OAuth2 client: the get-a-token half of OAuth2 (the use-a-token half is sasl XOAUTH2).
ormA minimal relational mapper over the sql library.
passwordPassword generation, validation, and complexity scoring against a policy schema.
pdfGenerate PDF documents - text, lines, rectangles - the way html / label generate their formats.
plotData plotting to SVG: turn numbers into a self-contained <svg> chart string you can write to a .svg file or drop into HTML.
popA POP3 receive client (RFC 1939): the line-oriented status dialogue ("+OK" / "-ERR") over the net system library, with plaintext, implicit TLS, or STLS, and auth by USER / PASS, XOAUTH2, CRAM-MD5...
prometheusA Prometheus metrics module in two halves.
ratelimitA rate limiter over a selectable key/value backend (kvstore.Store - memcache, redis, or the in-process kv).
redisA Redis client speaking RESP2 (the REdis Serialization Protocol) over the net system library.
resqueBackground jobs on Redis, wire-compatible with Resque.
restAn ergonomic REST layer over the http client and json.
ringbufferA fixed-capacity ring buffer of strings: a bounded FIFO that overwrites the oldest entry when full.
s3An S3-compatible object-storage client: get / put / delete objects and list a bucket, signing every request with AWS Signature Version 4.
saslThe SASL authentication mechanisms shared by the mail clients (smtp / pop / imap).
screenTerminal user interfaces: an explicit screen, not a GUI framework.
semverStrict Semantic Versioning 2.0.0 (https://semver.org): parse, compare, increment, and range-match version numbers - the full surface a package registry or dependency resolver needs.
sessionServer-side sessions over a selectable key/value backend.
slackPost messages to a Slack channel through an Incoming Webhook, on top of the http client - a sibling of gotify / discord.
smtpAn SMTP send client: the line-oriented command/response dialogue of RFC 5321, over the net system library (plaintext, implicit TLS, or STARTTLS) with SASL AUTH: PLAIN, LOGIN, XOAUTH2, CRAM-MD5, a...
snmpAn SNMP v1 / v2c client and agent (RFC 1157 / RFC 3416), over UDP with community-string authentication.
sqlmigrateA version-tracked schema-migration runner over the sql library.
statsdA StatsD client (over UDP): emit metric:value|type lines for a StatsD / Datadog / Telegraf agent to aggregate.
telegramA Telegram Bot API client over the http client + json.
tengineA small text template engine for lightweight CMS-style rendering - a subset of Go's text/template (the Go / Hugo style), evaluated directly over a json.Value data tree.
totpTime-based one-time passwords (RFC 6238 TOTP over RFC 4226 HOTP) - the six-digit two-factor codes authenticator apps show.
transportThe shared connection-transport security mode, used by every network-client module that opens a socket (smtp, pop, imap, redis, amqp, mqtt).
uriURL parsing, building, and query-string handling (RFC 3986).
validateDeclarative validation of a map of string to string (a form body, a query, a config) against a rule set, returning a structured error list instead of ad-hoc per-field if checks.
vcardBuild and parse vCard (RFC 6350, vCard 4.0): a Card of contact fields encoded to a VCARD and parsed back.
webAn ergonomic HTTP framework over the httpd server engine.
webapiA JSON-API conventions layer over the bundled web module.
webhookSign and verify HMAC-signed webhooks - the GitHub-style X-Hub-Signature-256 convention.
websocketAn RFC 6455 WebSocket client over net.