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.
mactelnetA MikroTik MAC-Telnet client - a Layer-2 console to a RouterOS device by MAC address, with no IP configured on either side (what Winbox's "Neighbors" console does).
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.