Packages
The guide is organised by subject rather than by package, so this page is the
bridge: it is how you get from a package name you already have — in an error
message, in a package.json, in somebody else’s import — to the pages that
explain it.
Install any of them with your package manager of choice; every name below is
published under the @ac-kit scope.
Portable packages import no host built-ins and run under Node, browsers, Deno, Bun and edge runtimes alike. Node only packages are bound to a host, and a portable package will never depend on one.
Language utilities
The operations on strings, numbers, iterables and objects that the standard library leaves out.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/core | Anywhere | Guards, type helpers, iterables, strings, numbers, objects, time and bytes |
Collections & algorithms
Data structures with predictable costs, and the algorithms that work over any shape rather than one structure.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/algo | Anywhere | Search, traversal, selection, grouping and set operations over any shape |
@ac-kit/data | Anywhere | Lists, deques, queues, heaps, sets, maps, graphs, tries and indexes |
Concurrency & async
Coordinating work that overlaps in time: locks, channels, events and cancellation.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/async | Anywhere | Events, mutexes, semaphores, barriers, latches, signals and channels |
Mathematics
Numbers and the things done with them — from what floating point actually guarantees to special functions and numerical calculus.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/math-algebra | Anywhere | Algebraic structures as evidence values, and the algorithms they unlock |
@ac-kit/math-analysis | Anywhere | Special functions, root finding, quadrature and continued fractions |
@ac-kit/math-color | Anywhere | Colour spaces, conversions, gamut mapping and perceptual difference |
@ac-kit/math-combinatorics | Anywhere | Factorials, binomial coefficients and permutation or subset generation |
@ac-kit/math-complex | Anywhere | Complex numbers as a tuple, with their arithmetic |
@ac-kit/math-curves | Anywhere | Bézier curves, splines, arc length and curve fitting |
@ac-kit/math-geometry | Anywhere | Shapes, coordinate systems, angles and meshes in 2D, 3D and 4D |
@ac-kit/math-grid | Anywhere | Discrete lattices: storage, packing, tiling and pixel conversion |
@ac-kit/math-integer | Anywhere | Bit manipulation, GCD, modular arithmetic and primality |
@ac-kit/math-linear | Anywhere | Fixed-dimension vectors, matrices and rotations |
@ac-kit/math-numbers | Anywhere | The number tower: arbitrary-precision integers, decimals and fractions |
@ac-kit/math-random | Anywhere | Fast, seedable, non-cryptographic pseudorandom generators |
@ac-kit/math-scalar | Anywhere | What binary64 actually guarantees: error-free transforms and tolerances |
@ac-kit/math-signal | Anywhere | Transforms, convolution, filters and windows |
@ac-kit/math-stats | Anywhere | Descriptive statistics, distributions, inference and regression |
Data formats
Reading and writing the file and wire formats other people's software produces.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/format-ansi | Anywhere | ANSI and xterm escape sequences: parsing, stripping, colour and hyperlinks |
@ac-kit/format-asn1 | Anywhere | X.690 BER, CER, DER and PER encoding with schema-bound codecs |
@ac-kit/format-asn1-compiler | Anywhere | Turning X.680 notation into runtime ASN.1 schemas |
@ac-kit/format-asn1-notation | Anywhere | X.680 ASN.1 notation: syntax tree, parser and printer |
@ac-kit/format-cbor | Anywhere | Concise Binary Object Representation encoding and decoding |
@ac-kit/format-core | Anywhere | The Decoder, Encoder, Codec and streaming contracts every format shares |
@ac-kit/format-cron | Anywhere | Cron expression parsing and next-occurrence computation |
@ac-kit/format-css-color | Anywhere | CSS Color 4 parsing, printing, resolution and the 148 keywords |
@ac-kit/format-csv | Anywhere | RFC 4180 rows and streams, plus rendering a DataFrame as CSV |
@ac-kit/format-editorconfig | Anywhere | EditorConfig parsing, property resolution and text normalization |
@ac-kit/format-glob | Anywhere | Glob syntax tree, parser, printer and matcher, with selectable dialects and a segment-oriented path face |
@ac-kit/format-hid | Anywhere | USB HID report descriptors: items, reports, fields and bit-level values |
@ac-kit/format-http | Anywhere | RFC 9110 field grammar, HTTP/1.1 message codecs, and the HTTP/2 frame codec with HPACK |
@ac-kit/format-ini | Anywhere | Order-preserving INI tree with span-targeted editing |
@ac-kit/format-json | Anywhere | JSON parsing and serialization |
@ac-kit/format-json5 | Anywhere | JSON5 parsing and serialization |
@ac-kit/format-jsonc | Anywhere | JSON-with-comments parsing and serialization |
@ac-kit/format-language-tag | Anywhere | BCP 47 tag parsing and printing, with RFC 4647 lookup and filtering |
@ac-kit/format-markdown | Anywhere | GitHub Flavored Markdown rendering |
@ac-kit/format-midi | Anywhere | MIDI 1.0 messages over a live byte stream, Standard MIDI Files, notes and lyrics with their times, and conversion to a Song |
@ac-kit/format-monospace | Anywhere | Fixed-width layout: tables, grapheme-aware widths, truncation, spinners |
@ac-kit/format-ndjson | Anywhere | Newline-delimited JSON parsing and serialization |
@ac-kit/format-netstring | Anywhere | Netstring framing as a zero-copy codec and a TransformStream |
@ac-kit/format-oid | Anywhere | Object identifiers and their registry |
@ac-kit/format-osc | Anywhere | Open Sound Control packets, NTP time tags, and datagram and stream framing codecs |
@ac-kit/format-po | Anywhere | GNU gettext PO and POT parsing, printing and Plural-Forms evaluation |
@ac-kit/format-regex | Anywhere | Regular expression syntax tree and a Pike virtual machine |
@ac-kit/format-shell | Anywhere | Shell command-line quoting and environment variable syntax |
@ac-kit/format-toml | Anywhere | TOML parsing and serialization |
@ac-kit/format-varint | Anywhere | Base-128 variable-length integers, in number and bigint |
@ac-kit/format-websocket | Anywhere | WebSocket frames with streamed payloads, masking, and close codes |
@ac-kit/format-yaml | Anywhere | YAML parsing and serialization |
Cryptography
Hashing, authentication and randomness, plus the non-cryptographic hashes that must never be confused with them.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/crypto-hash | Anywhere | MD5, SHA-1, SHA-2, SHA-3/SHAKE, BLAKE2, RIPEMD-160 and SM3 |
@ac-kit/crypto-mac | Anywhere | HMAC, CMAC, GMAC and Poly1305 message authentication |
@ac-kit/crypto-random | Anywhere | Cryptographically secure random bytes and deterministic DRBGs |
@ac-kit/crypto-safe | Anywhere | Constant-time comparison, selection and arithmetic |
@ac-kit/noncrypto-hash | Anywhere | Fast hashes, checksums and rolling hashes — never for security |
Networking & protocols
Protocol clients written against a transport boundary, so the same client runs over TCP, TLS or a test double.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/net-address | Anywhere | IPv4, IPv6, MAC/EUI and ports: parsing, CIDR arithmetic, scopes |
@ac-kit/net-core | Anywhere | The Transport boundary every protocol is written against, listener and connector types, and the multiplexed connection contract |
@ac-kit/net-http | Anywhere | HTTP/1.1, HTTP/2 and HTTP/3 server and pooling client over any transport, version-neutral message types |
@ac-kit/net-imap | Anywhere | IMAP client over any transport |
@ac-kit/net-osc | Anywhere | Open Sound Control endpoint over any transport, and OSC URLs |
@ac-kit/net-pop3 | Anywhere | POP3 client over any transport |
@ac-kit/net-quic | Node only | QUIC listener and connector over a native quiche binding, yielding multiplexed connections |
@ac-kit/net-smtp | Anywhere | SMTP and LMTP clients over any transport |
@ac-kit/net-socketmap | Anywhere | Postfix socketmap protocol client and server |
@ac-kit/net-transport-node | Node only | Transports, a TCP and TLS listener and connector with ALPN, on Node sockets |
@ac-kit/net-websocket | Anywhere | WebSocket peer and opening handshake over any transport |
Node.js integration
The host-bound layer: processes, files, sockets and everything that only exists under Node.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/node | Node only | Node built-in extensions: processes, files, streams and sockets |
Application building blocks
Configuration, logging, reporting, terminal output and translation, for programs rather than libraries.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/app-config | Node only | Locating, reading and resolving configuration files |
@ac-kit/app-i18n | Anywhere | Message catalogues, plural selection and locale negotiation |
@ac-kit/app-logger | Node only | Structured logging over the shared report pipeline |
@ac-kit/app-report | Anywhere | The event pipeline logging and reporting both build on |
@ac-kit/app-system | Node only | Process lifecycle, PID files, binary lookup and log rotation |
@ac-kit/app-terminal | Anywhere | Terminal capability description, styling, glyphs and live regions |
External programs
Typed wrappers over command-line programs installed separately, such as git and docker.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/cmd-docker | Node only | Typed invocation of the docker command-line program |
@ac-kit/cmd-git | Node only | Typed invocation of the git command-line program |
Data modelling
Descriptions of data and of charts, kept separate from anything that stores or draws them.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/model-chart | Anywhere | PlotSpec: what a chart is, with nothing that draws one |
@ac-kit/model-dataset | Anywhere | DataFrame and its schema: fields, units and number formatting |
@ac-kit/model-music | Anywhere | Song: notes timed in divisions and seconds, parts, tempo map, meter, measures and dynamics |
Project tooling
Shared build, lint and test configuration, and the fixtures test suites read from. Of interest to contributors, not to callers.
| package | runs on | what it is for |
|---|---|---|
@ac-kit/biome-config | Anywhere | Shared Biome configuration |
@ac-kit/fixture-crypto | Node only | NIST CAVP, Wycheproof and RFC known-answer vectors, for tests only |
@ac-kit/fixture-util | Node only | Acquiring and caching the fixture corpora test suites read |
@ac-kit/fixture-x509 | Node only | PKITS, OpenSSL and BouncyCastle certificate corpora, for tests only |
@ac-kit/integration-test-util | Node only | Subprocess and container helpers for integration suites |
@ac-kit/markdownlint-cli2-config | Anywhere | Shared markdownlint-cli2 configuration |
@ac-kit/markdownlint-config | Anywhere | Shared markdownlint rule set |
@ac-kit/oxlint-config | Anywhere | Shared oxlint and oxfmt configuration |
@ac-kit/test-util | Anywhere | Assertions and generators shared across test suites |
@ac-kit/tsconfig | Anywhere | The tsconfig bases every package extends |
@ac-kit/typedoc-config | Anywhere | Shared TypeDoc configuration |
@ac-kit/vitest-config | Anywhere | Shared Vitest project and workspace configuration |