NURL

Standard library tour

What lives in core/, std/, and ext/, grouped by category.

The standard library is plain .nu source. You pull it in with $-imports. No separate package step is necessary. It has three layers:

LayerPathContents
corestdlib/core/Built into every program's assumptions: strings, vectors, Option/Result, memory helpers
stdstdlib/std/The general-purpose standard library: collections, I/O, time, threads, crypto primitives
extstdlib/ext/Higher-level, optional modules: HTTP, JSON, package management, MCP

Every module is plain-text and readable. The fastest way to see a module's exact function signatures: use nurl_read_stdlib (via the NURL MCP server) or open the file under stdlib/ directly.

Core

ModuleContents
string.nuthe managed String type and its operations
vec.nuVec[T], a growable array
option.nu / result.nucombinators for ?T and !T E — see Error handling
slice.nuslice helpers
mem.nulow-level allocation helpers
box.nu / cell.nu / pair.nusmall owned-value wrappers
char.nucharacter classification
io.nubasic input/output
errors.nushared error-value shapes
symtab.nu / posix.nucompiler/runtime-facing helpers

Collections

hashmap.nu, btree.nu, ordmap.nu (insertion-ordered map), set.nu, deque.nu, heap.nu, bitset.nu, lru.nu — plus arena.nu for bump-allocated batches, and arc.nu / rc.nu for shared ownership (Arc is thread-safe, Rc is single-threaded — see Concurrency).

Numbers and encoding

int.nu, float.nu, floatbits.nu, bigint.nu, decimal.nu, fft.nu for numeric work; encode.nu and utf8.nu for text encoding; fmt.nu for formatted output.

I/O and the operating system

fs.nu (filesystem), bufio.nu (buffered I/O), path.nu, process.nu, args.nu, env.nu (ext/), signal.nu, term.nu, progress.nu, fswatch.nu.

Time and concurrency

time.nu, thread.nu, channel.nu, async.nu, async_ffi.nu — see Concurrency for the full picture.

Networking

net.nu, dns.nu, udp.nu, unixsock.nu, url.nu, tls.nu, tls_server.nu, tls_verify.nu in std/; the HTTP/1.1 and HTTP/2 stack (http.nu, http_server.nu, http_router.nu, http_middleware.nu, http2_*.nu, and more), websocket.nu, mqtt.nu in ext/. See Networking for a guided tour.

Cryptography

aes_gcm.nu, chacha20poly1305.nu, ecdsa_p256.nu, ed25519.nu, x25519.nu, the hash_*.nu family (SHA-1/2, MD5, BLAKE2b, BLAKE3), hkdf.nu, pbkdf2.nu, scrypt.nu, rsa.nu, minisign.nu, subtle.nu (constant-time comparisons), x509.nu / x509_gen.nu in std/; crypto.nu, jwt.nu, http_jwt.nu in ext/. See Cryptography.

Data formats and serialization

json.nu, msgpack.nu, cbor.nu, toml.nu, yaml.nu, xml.nu, csv.nu, serde.nu (a Serialize trait), zip.nu, tar.nu, compress.nu, deflate.nu.

Packages and the registry

manifest.nu, resolver.nu, semver.nu, lockfile.nu, registry_index.nu, pkg_fetch.nu, pkg_publish.nu, update_check.nu — the pieces nurlpkg is built from. See Editor and tooling.

Diagnostics and dev tools

bench.nu, log.nu, trace.nu, panic.nu (see Error handling), sort.nu, cmp.nu, random.nu, rng.nu, lifeguard.nu (false-positive suppression for failure detectors), dos.nu (abuse-resistance limits), nurldoc.nu.

Distributed computing and embedded

stdlib/net/ and stdlib/dist/ build a peer-to-peer stack — encrypted transport, NAT traversal, membership/failure detection, and CRDTs — on top of the socket layer above. See Distributed computing. stdlib/hal/ holds hardware-facing code (now an ESP32 memory-mapped I/O layer) for embedded targets — see Embedded targets. Both are advanced, opt-in layers.

Next

Last updated on

On this page