fetch, URL, crypto, or ReadableStream runs on Ant without modification, and it means Ant plays well in ecosystems that test for WinterTC compliance. Alongside that baseline, Ant ships a broad set of Node-compatible built-in modules so that existing npm packages and Node-style code work out of the box.
ECMAScript conformance
Ant measures conformance against two test suites: js-zoo (which covers ES1 through modern ES) and test262 (the official ECMAScript conformance test suite). The numbers below are from the Ant 0.9.1 release.| Suite | Pass rate | Notes |
|---|---|---|
| js-zoo (ES1–ES5) | ~100% | |
| js-zoo (ES6) | ~82% | |
| js-zoo (ES2016+) | ~86% | |
| js-zoo (overall) | 88% | 1211/1368 passing |
| test262 | ~50% | Improving; focus is on real-world coverage |
test262 coverage is an active area of work. The team prioritizes real-world API coverage over exhaustive spec compliance, so you may encounter edge cases in less-common language features.
WinterTC Minimum Common API
Ant is fully WinterTC conformant, which means the following standard globals are available without any imports:fetch,Request,Response,Headers— HTTP client APIURL,URLSearchParams— URL parsing and constructioncrypto— Web Crypto API (subtleCrypto, randomUUID, getRandomValues)TextEncoder,TextDecoder— text encoding and decodingReadableStream,WritableStream,TransformStream— WHATWG streamsBlob,FormData— binary data and multipart formsAbortController,AbortSignal— request cancellationstructuredClone— deep cloningqueueMicrotask,setTimeout,setInterval,clearTimeout,clearInterval— timersperformance— performance timing (High Resolution Time)navigator— environment metadata (navigator.userAgent, etc.)
Node.js compatibility
Ant provides Node-compatible built-in modules accessible via thenode: prefix or as bare names. You can import them either way:
File system, paths, and OS
File system, paths, and OS
| Module | Import | Description |
|---|---|---|
node:fs / ant:fs | import fs from 'node:fs' | File system operations |
node:path / ant:path | import path from 'node:path' | Path utilities |
node:os | import os from 'node:os' | Operating system info |
Networking and TLS
Networking and TLS
| Module | Import | Description |
|---|---|---|
node:net | import net from 'node:net' | TCP networking |
node:tls | import tls from 'node:tls' | TLS/SSL sockets |
node:dns | import dns from 'node:dns' | DNS resolution |
Crypto, streams, and encoding
Crypto, streams, and encoding
| Module | Import | Description |
|---|---|---|
node:crypto / ant:crypto | import crypto from 'node:crypto' | Cryptography |
node:stream | import stream from 'node:stream' | Node streams |
node:buffer | import { Buffer } from 'node:buffer' | Buffer |
node:zlib | import zlib from 'node:zlib' | Compression |
node:string_decoder | import { StringDecoder } from 'node:string_decoder' | String decoder |
Process, concurrency, and events
Process, concurrency, and events
| Module | Import | Description |
|---|---|---|
node:child_process | import { spawn } from 'node:child_process' | Spawn child processes |
node:worker_threads | import { Worker } from 'node:worker_threads' | Worker threads |
node:events | import { EventEmitter } from 'node:events' | EventEmitter |
node:async_hooks | import { AsyncLocalStorage } from 'node:async_hooks' | Async context tracking |
Utilities and runtime shims
Utilities and runtime shims
| Module | Import | Description |
|---|---|---|
node:url | import { fileURLToPath } from 'node:url' | URL utilities |
node:util | import util from 'node:util' | Utility functions |
node:assert | import assert from 'node:assert' | Assertions |
node:readline | import readline from 'node:readline' | Readline interface |
node:perf_hooks | import { performance } from 'node:perf_hooks' | Performance timing |
node:tty | import tty from 'node:tty' | TTY utilities |
node:console | import console from 'node:console' | Console |
node:timers | import { setTimeout } from 'node:timers' | Timer functions |
node:v8 | import v8 from 'node:v8' | V8 compatibility shim |
Ant-only modules
These modules are unique to Ant and are not available in Node, Bun, or Deno. They expose low-level capabilities designed for environments where Ant’s small footprint is an advantage.| Module | Import | Description |
|---|---|---|
ant:ffi | import ffi from 'ant:ffi' | Call native shared libraries from JavaScript |
ant:shell | import shell from 'ant:shell' | Execute shell commands and capture output |
ant:lmdb | import lmdb from 'ant:lmdb' | Embedded LMDB key-value store |
Supported platforms
Ant ships official CI-built binaries for the following platforms:| Operating system | Architecture | Variant | Static | CI environment |
|---|---|---|---|---|
| GNU/Linux | x64 | glibc | No | Ubuntu 22.04 |
| GNU/Linux | aarch64 | glibc | No | Ubuntu 22.04 |
| GNU/Linux | x64 | musl | Yes | Alpine Edge |
| GNU/Linux | aarch64 | musl | Yes | Alpine Edge |
| macOS | x64 | darwin | No | macOS 15 |
| macOS | aarch64 | darwin | No | macOS 15 |
| Windows | x64 | mingw/msys | No | MSYS2 MINGW64 |
Windows builds use the MSYS2 MINGW64 toolchain. Native MSVC builds are not currently supported.