Xo is experimental. The source is now public on GitHub, or try Xo in your browser.
Menu · Std coverage

Docs

Standard library coverage

On this page

As of Xo 0.36 (development, main cb96872b6 of 2026-11-03); Go 1.26.1. Every count below comes from a command run on that commit: go list std without internal and vendor packages, and the table in the repository’s std-coverage.md (decision 0276: Go’s standard library is std’s reference scope).

Summary

Go has 176 public standard library packages. Xo has 61 std modules besides the prelude (the builtin types and capabilities every program sees).

StatusGo packages
Covered (done)66
Partial33
Not applicable by design52
Gap, potentially planned25

Beyond Go: modules with no Go standard library counterpart, or going past it, are listed under Beyond Go.

Maturity levels

Each std module gets three marks, one per axis, and an overall level that is the weakest of the three (owner, 2026-11-02, decision 0461).

AxisEarlySolidProven
Features, against Go’s package or the domaincore usescommon uses, gaps listednear full parity, or beyond Go
Testingown testsGo’s tests ported or a Go differential; parsers fuzzedalso --race and load stress clean, long fuzz runs, security reviewed where it applies (crypto, tls, http, x509)
Performancenot measured, or measured and above 2x Gomeasured against Go, within 2xat or better than Go on its benchmark

How a mark is read here: Features from the rows of the coverage table that name the module (all done is Proven, any partial is Solid; a module with no Go package is Solid and says so). Testing from the committed corpus of Go’s tests under internal/stdtest/testdata/corpus, Go differential tests, and fuzz tests for modules that parse untrusted input. Performance from a committed result file with a Go twin. A mark with no committed evidence is Early, so a missing result is the gap to close, not a hidden number. The dates are those of the result files, which can be older than this page; a re-run can only move a mark if the file is replaced.

Today: overall 0 Proven, 26 Solid, 36 Early of 62 (prelude and 61 modules). Per axis, features 35/27/0, testing 0/41/21, performance 17/18/27 (Proven/Solid/Early). No module has the committed --race, load stress, long fuzz and security review evidence that Proven testing needs yet.

Per module

Marks only. Each module has its three marks (F features, T testing, P performance) and the short figures behind them; times are multiples of Go’s time, so lower is faster and 0.47x is better than Go. The prose behind each mark (which rows are partial, the timings, what is missing, the evidence link) is under Module notes; each module name links to its note.

ModuleMarks: F features, T testing, P performance
preludeF Solid T Solid P Early Features 15/18 · Testing ported · Performance 0.91 to 1.62x
std/adler32F Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/archiveF Proven T Solid P Solid Features 2/2 · Testing ported + hostile · Performance 0.27 to 1.2x
std/backoffF Solid T Solid P Early Features beyond Go · Testing ported · Performance no row
std/base32F Proven T Solid P Proven Features 1/1 · Testing ported · Performance 0.47 to 0.98x
std/base64F Proven T Solid P Proven Features 1/1 · Testing ported · Performance 0.57 to 0.88x
std/bcryptF Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/bigF Solid T Solid P Solid Features 0/1 · Testing ported · Performance 0.49 to 1.23x
std/binaryF Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/bufioF Solid T Solid P Early Features own domain · Testing ported · Performance no row
std/cborF Proven T Solid P Proven Features 1/1 · Testing ported · Performance see notes
std/charsetF Proven T Solid P Early Features 2/2 · Testing ported · Performance no row
std/cliF Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/compressF Proven T Solid P Proven Features 2/2 · Testing ported + hostile · Performance 0.91 to 0.96x
std/cookiejarF Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/crc32F Proven T Solid P Proven Features 1/1 · Testing ported · Performance 0.37 to 0.96x
std/crc64F Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/cronF Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/cryptoF Solid T Solid P Solid Features 12/16 · Testing ported · Performance 1.12 to 1.2x
std/csvF Proven T Solid P Proven Features 1/1 · Testing ported + fuzz · Performance 0.92 to 1.01x
std/debugF Proven T Early P Early Features 1/1 · Testing own tests · Performance no row
std/dequeF Solid T Solid P Proven Features own domain · Testing ported · Performance 0.13 to 0.17x
std/dnsF Solid T Early P Proven Features 0/1 · Testing own tests · Performance 0.928x
std/embedF Proven T Early P Early Features 1/1 · Testing own tests · Performance no row
std/fnvF Proven T Solid P Proven Features 1/1 · Testing ported · Performance 0.98x
std/goF Solid T Early P Early Features own domain · Testing own tests · Performance no row
std/heapF Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/htmlF Proven T Early P Solid Features 1/1 · Testing own tests · Performance 0.54 to 1.37x
std/httpF Solid T Solid P Solid Features 1/5 · Testing ported + fuzz · Performance see notes
std/idnaF Proven T Solid P Proven Features 1/1 · Testing ported · Performance 0.44 to 0.98x
std/jpegF Proven T Solid P Proven Features 1/1 · Testing ported · Performance 1.01 to 1.04x
std/jsonF Solid T Solid P Proven Features 0/1 · Testing ported + fuzz · Performance 0.33 to 0.49x instr.
std/logF Solid T Early P Early Features 1/2 · Testing own tests · Performance no row
std/mailF Proven T Solid P Solid Features 1/1 · Testing ported · Performance 0.45 to 1.15x
std/metricsF Proven T Solid P Early Features 2/2 · Testing ported · Performance no row
std/mimeF Solid T Solid P Solid Features 0/1 · Testing ported + hostile · Performance 0.9 to 1.28x
std/multipartF Solid T Early P Solid Features 0/1 · Testing ported, no fuzz · Performance 1.15x instr.
std/netipF Proven T Early P Early Features 1/1 · Testing ported, no fuzz · Performance 1.79 to 1.88x
std/normF Proven T Solid P Proven Features 1/1 · Testing ported · Performance 0.7 to 0.75x
std/otpF Proven T Solid P Solid Features 1/1 · Testing ported · Performance 0.936 to 1.316x
std/pathF Proven T Solid P Solid Features 2/2 · Testing ported · Performance 1.08 to 1.4x
std/pngF Proven T Solid P Proven Features 1/1 · Testing ported · Performance 0.94 to 1.04x
std/rateF Solid T Solid P Solid Features beyond Go · Testing ported · Performance 1.29x
std/regexpF Proven T Early P Solid Features 1/1 · Testing ported, no fuzz · Performance 0.89 to 1.25x
std/smtpF Proven T Early P Early Features 1/1 · Testing ported, no fuzz · Performance no row
std/sqlF Solid T Solid P Early Features 2/3 · Testing ported · Performance no row
std/tabwriterF Proven T Solid P Early Features 1/1 · Testing ported · Performance no row
std/taskF Solid T Early P Early Features own domain · Testing own tests · Performance no row
std/templateF Solid T Early P Solid Features 1/2 · Testing ported, no fuzz · Performance 0.9 to 1.36x
std/termF Solid T Early P Early Features own domain · Testing own tests · Performance no row
std/testingF Proven T Early P Early Features 2/2 · Testing own tests · Performance no row
std/timeF Proven T Early P Early Features 1/1 · Testing ported, no fuzz · Performance 1.9 to 3.7x
std/tlsF Solid T Early P Solid Features 0/1 · Testing differential, no fuzz · Performance see notes
std/tomlF Solid T Early P Solid Features beyond Go · Testing own tests · Performance 1.17 to 1.32x
std/traceF Solid T Early P Early Features 0/1 · Testing own tests · Performance no row
std/udpF Solid T Early P Early Features 0/1 · Testing own tests · Performance no row
std/urlF Solid T Solid P Proven Features 0/1 · Testing ported + fuzz · Performance 0.78x instr.
std/uuidF Proven T Solid P Proven Features 1/1 · Testing ported · Performance 0.72 to 1x
std/websocketF Solid T Early P Solid Features 0/1 · Testing own tests · Performance 0.4 to 1.12x
std/x509F Solid T Solid P Proven Features own domain · Testing ported + fuzz · Performance 0.98x
std/xmlF Solid T Solid P Solid Features 0/1 · Testing ported + fuzz · Performance 0.95 to 1.15x
std/xmlcodecF Solid T Early P Solid Features own domain · Testing ported, no fuzz · Performance 0.57 to 1.13x

Module notes

One entry per module: the three marks with their evidence, in words, and when the module was added. The marks are the table’s; nothing here changes one.

prelude

Overall Early. Added go-compiler-final (2026-10-08).

  • Features Solid: 15 of 18 mapped Go rows done, 3 partial.
  • Testing Solid: Go’s tests ported.
  • Performance Early: Str.trim_chars 1.62 of Go’s wall (was 2.24); fs walk_dir_entries 0.91 of Go’s wall (decision 0483; walk_dir with a FileInfo each 1.49, 0.94 with Go reading each entry’s info); itoa 1.35 (was 1.52), atoi 1.46, sort of strings 1.42; split, search, case and predicate workloads 0.4 to 1.24 (2026-11-03).

std/adler32

Overall Early. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/archive

Overall Solid. Added v0.11.0 (2026-10-11).

  • Features Proven: all 2 mapped Go rows done.
  • Testing Solid: Go’s tests ported; 2,010 hostile tar and zip archives (Go-written and hand-built headers, cut and field-mutated) against Go’s archive/tar and archive/zip readers on every backend.
  • Performance Solid: zip 1.20, tar 1.04, unzip 0.99, untar 0.27 of Go’s wall (2026-11-03).

std/backoff

Overall Early. Added v0.35.0 (2026-10-29).

  • Features Solid: beyond Go: no Go std package.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/base32

Overall Solid. Added v0.23.0 (2026-10-20).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Proven: encode 0.98, decode 0.47 of Go’s wall (2026-11-03).

std/base64

Overall Solid. Added v0.23.0 (2026-10-20).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Proven: encode 0.57, decode 0.88 of Go’s wall (2026-11-03).

std/bcrypt

Overall Early. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/big

Overall Solid. Added v0.24.0 (2026-10-21).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Solid: Go’s tests ported.
  • Performance Solid: mul 1.23, parse 0.49 of Go’s wall (2026-11-03).

std/binary

Overall Early. Added v0.23.0 (2026-10-20).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/bufio

Overall Early. Added unreleased (2026-11-03).

  • Features Solid: no Go package maps to it; covers its own domain’s common uses.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/cbor

Overall Solid. Added v0.37.0 (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported; 1,500 seeded inputs from a byte level builder (random head widths, indefinite lengths, floats of every width, tags, simple values, repeated keys, text that is not UTF-8, then bits flipped, cuts, insertions) against fxamacker/cbor v2 (Go has no CBOR in its standard library), plus 12,000 fresh cases on arm64 and LLVM and the RFC 8949 Appendix A examples.
  • Performance Proven: decode 0.43, encode 0.26, deterministic encode 0.62 of fxamacker/cbor’s wall (2026-11-03).

std/charset

Overall Early. Added unreleased (2026-11-03).

  • Features Proven: all 2 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/cli

Overall Early. Added v0.11.0 (2026-10-11).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/compress

Overall Solid. Added v0.24.0 (2026-10-21).

  • Features Proven: all 2 mapped Go rows done.
  • Testing Solid: Go’s tests ported; 2,000 hostile DEFLATE, zlib and gzip streams (hand-built blocks and corrupted Go output) against Go’s decoders, error texts exact, plus streaming and max_size, on every backend.
  • Performance Proven: gzip 0.96, gunzip 0.92, deflate 0.96, inflate 0.91 of Go’s wall (2026-11-03).

std/cookiejar

Overall Early. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/crc32

Overall Solid. Added v0.35.0 (2026-10-29).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Proven: crc32 0.96, crc32c 0.37 of Go’s wall (2026-11-03).

std/crc64

Overall Early. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/cron

Overall Early. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/crypto

Overall Solid. Added v0.7.0 (2026-10-08).

  • Features Solid: 12 of 16 mapped Go rows done, 4 partial.
  • Testing Solid: Go’s tests ported.
  • Performance Solid: AES-GCM bulk loop 1.12, ChaCha20-Poly1305 1.2 of Go (2026-10-22).

std/csv

Overall Solid. Added v0.11.0 (2026-10-11).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported; fuzz corpus against encoding/csv (2,000 texts under random Reader options, error texts exact, and the Writer’s output; internal/stdtest/csvfuzz_test.go runs fresh seeds).
  • Performance Proven: parse 0.92, format 1.01 of Go’s wall (2026-11-03).

std/debug

Overall Early. Added v0.25.0 (2026-10-21).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/deque

Overall Solid. Added v0.36.0 (2026-10-30).

  • Features Solid: no Go package maps to it; covers its own domain’s common uses.
  • Testing Solid: Go’s tests ported.
  • Performance Proven: queue and both-ends workloads 0.13 to 0.17 of Go’s wall (2026-11-03).

std/dns

Overall Early. Added v0.35.0 (2026-10-29).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Early: own tests only.
  • Performance Proven: mx 0.928 of Go’s wall (2026-11-03).

std/embed

Overall Early. Added v0.24.0 (2026-10-21).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/fnv

Overall Solid. Added v0.35.0 (2026-10-29).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Proven: fnv 32a, 64a, 128a at most 0.98 of Go’s wall (2026-11-03).

std/go

Overall Early. Added v0.7.0 (2026-10-08).

  • Features Solid: no Go package maps to it; covers its own domain’s common uses.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/heap

Overall Early. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/html

Overall Early. Added v0.35.0 (2026-10-29).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Early: own tests only.
  • Performance Solid: escape 1.37, unescape 0.54 of Go’s wall (2026-11-03).

std/http

Overall Solid. Added v0.7.0 (2026-10-08).

  • Features Solid: 1 of 5 mapped Go rows done, 4 partial.
  • Testing Solid: Go’s tests ported; request head, response and URL fuzz tests.
  • Performance Solid: HTTP/2 14 us a request against Go’s 32; /alloc 0.97 of v0.35.0 (2026-11-02).

std/idna

Overall Solid. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Proven: ascii 0.71, mixed 0.94, long 0.94, map 0.91, nfcmap 0.44, enc 0.98, dec 0.96 of Go’s wall (2026-11-03).

std/jpeg

Overall Solid. Added v0.37.0 (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported; 350 seeded files from a segment-aware mutator over Go’s test images and Go-encoded images (every chroma ratio, baseline and progressive, restart intervals, CMYK, YCCK, headers, tables, scan parameters, cuts, bit flips) against Go’s Decode and DecodeConfig, plus 12,000 fresh cases on arm64 and LLVM.
  • Performance Proven: decode 1.01, with RGBA conversion 1.04 of Go’s wall (2026-11-03).

std/json

Overall Solid. Added v0.7.0 (2026-10-08).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Solid: Go’s tests ported; fuzz corpus against encoding/json (2,022 cases; internal/stdtest/jsonfuzz_test.go runs fresh seeds).
  • Performance Proven: 0.33 to 0.49 of Go’s instructions on native (2026-10-21).

std/log

Overall Early. Added v0.7.0 (2026-10-08).

  • Features Solid: 1 of 2 mapped Go rows done, 1 partial.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/mail

Overall Solid. Added v0.23.0 (2026-10-20).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported; 2,000 addresses, address lists, header blocks and dates against Go’s net/mail (RFC 2047, groups, folds, zones) on every backend.
  • Performance Solid: display 1.15, address 0.62, header block 0.45 of Go’s wall (2026-11-03).

std/metrics

Overall Early. Added v0.25.0 (2026-10-21).

  • Features Proven: all 2 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/mime

Overall Solid. Added v0.23.0 (2026-10-20).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Solid: Go’s tests ported; 2,000 cases against Go’s mime and net/http: hostile Content-Type headers (RFC 2231, continuations, duplicates), format_media_type, every DetectContentType signature, on every backend.
  • Performance Solid: format 1.28, parse 1.06, detect 0.90 of Go’s wall (2026-11-03).

std/multipart

Overall Early. Added v0.23.0 (2026-10-20).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Early: Go’s tests ported; parser with no fuzz harness.
  • Performance Solid: parse 1.15 of Go’s instructions (2026-10-21).

std/netip

Overall Early. Added v0.23.0 (2026-10-20).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Early: Go’s tests ported; parser with no fuzz harness.
  • Performance Early: n1 1.88, n2 1.79 of Go’s wall (2026-11-03).

std/norm

Overall Solid. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Proven: ascii 0.75, nfc 0.7 of Go’s wall (2026-11-03).

std/otp

Overall Solid. Added unreleased (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Solid: sha1 0.936, sha256 1.316, sha512 0.937 of Go’s wall (2026-11-03).

std/path

Overall Solid. Added v0.7.0 (2026-10-08).

  • Features Proven: all 2 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Solid: clean 1.08, join 1.13, parts 1.40 of Go’s wall (2026-11-03).

std/png

Overall Solid. Added v0.37.0 (2026-11-03).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported; 1,000 seeded files from a chunk-level builder and Go-encoded images (every color type and depth, bad headers, palettes, tRNS, split IDATs, cuts, bit flips) against Go’s Decode and DecodeConfig, plus 36,000 fresh cases over six seeds.
  • Performance Proven: decode 1.04, encode 0.94 of Go’s wall (2026-11-03).

std/rate

Overall Solid. Added v0.35.0 (2026-10-29).

  • Features Solid: beyond Go: x/time/rate is outside std.
  • Testing Solid: Go’s tests ported.
  • Performance Solid: allow 1.29 of Go’s wall (2026-11-03).

std/regexp

Overall Early. Added v0.11.0 (2026-10-11).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Early: Go’s tests ported; parser with no fuzz harness.
  • Performance Solid: match 1.25, find_all 0.89 of Go’s wall (2026-11-03).

std/smtp

Overall Early. Added v0.24.0 (2026-10-21).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Early: Go’s tests ported; parser with no fuzz harness.
  • Performance Early: no committed row against Go.

std/sql

Overall Early. Added v0.7.0 (2026-10-08).

  • Features Solid: 2 of 3 mapped Go rows done, 1 partial.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/tabwriter

Overall Early. Added v0.35.0 (2026-10-29).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Early: no committed row against Go.

std/task

Overall Early. Added v0.7.0 (2026-10-08).

  • Features Solid: no Go package maps to it; covers its own domain’s common uses.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/template

Overall Early. Added v0.24.0 (2026-10-21).

  • Features Solid: 1 of 2 mapped Go rows done, 1 partial.
  • Testing Early: Go’s tests ported; parser with no fuzz harness.
  • Performance Solid: render 1.36, parse 0.90 of Go’s wall (2026-11-03).

std/term

Overall Early. Added v0.11.0 (2026-10-11).

  • Features Solid: no Go package maps to it; covers its own domain’s common uses.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/testing

Overall Early. Added v0.7.0 (2026-10-08).

  • Features Proven: all 2 mapped Go rows done.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/time

Overall Early. Added v0.7.0 (2026-10-08).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Early: Go’s tests ported; parser with no fuzz harness.
  • Performance Early: format 3.7 and parse 3.6 of Go’s wall with string layouts (5.4 and 4.7 before the one-scan format and parse), 2.03 and 1.90 with a const Layout; civil 0.46 (2026-11-03).

std/tls

Overall Early. Added v0.23.0 (2026-10-20).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Early: TLS 1.3 client and server differential against Go; parser with no fuzz harness.
  • Performance Solid: HTTP/2 14 us a request against Go’s 32; handshakes mixed (2026-10-21).

std/toml

Overall Early. Added v0.11.0 (2026-10-11).

  • Features Solid: beyond Go: Go has no TOML in std.
  • Testing Early: own tests only.
  • Performance Solid: decode 1.17, encode 1.32 of Go’s wall (2026-11-03).

std/trace

Overall Early. Added v0.25.0 (2026-10-21).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/udp

Overall Early. Added v0.35.0 (2026-10-29).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Early: own tests only.
  • Performance Early: no committed row against Go.

std/url

Overall Solid. Added v0.23.0 (2026-10-20).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Solid: Go’s tests ported; URL fuzz test.
  • Performance Proven: 0.78 of Go’s instructions (2026-10-23).

std/uuid

Overall Solid. Added v0.23.0 (2026-10-20).

  • Features Proven: all 1 mapped Go rows done.
  • Testing Solid: Go’s tests ported.
  • Performance Proven: parse 0.91, string 0.72, bytes 1.00 of Go’s wall (2026-11-03).

std/websocket

Overall Early. Added v0.24.0 (2026-10-21).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Early: own tests only.
  • Performance Solid: small messages 1.12, big 0.40, dial 0.77 of Go’s wall (2026-11-03).

std/x509

Overall Solid. Added v0.35.0 (2026-10-29).

  • Features Solid: no Go package maps to it; covers its own domain’s common uses.
  • Testing Solid: Go’s tests ported; fuzz cases in its corpus.
  • Performance Proven: parse, verify, create and CRL at most 0.98 of Go’s wall (2026-11-03).

std/xml

Overall Solid. Added v0.24.0 (2026-10-21).

  • Features Solid: 0 of 1 mapped Go rows done, 1 partial.
  • Testing Solid: Go’s tests ported; fuzz corpus against encoding/xml (2,000 documents through Token, Token not strict, and RawToken, error texts exact; internal/stdtest/xmlfuzz_test.go runs fresh seeds).
  • Performance Solid: tokens 1.15, tree 0.95 of Go’s wall (2026-11-03).

std/xmlcodec

Overall Early. Added v0.24.0 (2026-10-21).

  • Features Solid: no Go package maps to it; covers its own domain’s common uses.
  • Testing Early: Go’s tests ported; parser with no fuzz harness.
  • Performance Solid: encode 0.57, decode 1.13 of Go’s wall (2026-11-03).

Go packages

All 176 packages of go list std, by status. A package that maps to a module names it; the repository’s coverage table has the notes per row.

Covered (66)

The module covers what a backend uses of the package, on the native backends and the Go backend.

Go packageXo
archive/tarstd/archive
archive/zipstd/archive
bytesprelude Bytes, BytesBuilder
cmpprelude List, Map, Set, Ord
compress/flatestd/compress (and std/archive gzip, gunzip)
compress/gzipstd/compress (and std/archive gzip, gunzip)
compress/zlibstd/compress zlib, unzlib
container/heapstd/heap
contextscopes, cancellation, task.with_timeout
crypto/ed25519std/crypto
crypto/hkdfstd/crypto
crypto/hmacstd/crypto hmac, hmac_hasher
crypto/md5std/crypto Hash.Md5
crypto/pbkdf2std/crypto hash_password
crypto/randprelude Rand, crypto.random_bytes, token
crypto/sha1std/crypto Hash.Sha1
crypto/sha256std/crypto
crypto/sha3std/crypto Hash
crypto/sha512std/crypto Hash
crypto/subtlestd/crypto equal
database/sql/driverstd/sql Driver, DriverConn, DriverRows, open_driver
embedstd/embed (with core 3.1’s embed)
encoding/base32std/base32
encoding/base64std/base64, prelude Bytes
encoding/binarystd/binary
encoding/csvstd/csv
encoding/hexprelude Bytes
encoding/pemstd/crypto
errors!` results, Error interface
expvarstd/metrics
flagstd/cli
hash/crc32std/crc32
hash/fnvstd/fnv
htmlstd/html
logstd/log
mapsprelude List, Map, Set, Ord
math/bitsprelude Int word methods
math/randprelude Rand capability
math/rand/v2prelude Rand capability
net/http/cookiejarstd/cookiejar
net/http/httpteststd/testing FakeNet, Router.call
net/http/pprofstd/debug router (decision 0325)
net/mailstd/mail
net/netipstd/netip
net/smtpstd/smtp
os/execprelude Proc, Cmd, Child
pathstd/path
path/filepathprelude Fs paths, std/path
regexpstd/regexp
regexp/syntaxstd/regexp
slicesprelude List, Map, Set, Ord
sortprelude List, Map, Set, Ord
strconvprelude Int.parse, parse_base, to_str_base, Float.parse, Bool.parse, quote, unquote
stringsprelude Str
syncprelude Mutex, Atomic, Chan, task.once, semaphore
sync/atomicprelude Mutex, Atomic, Chan, task.once, semaphore
testingtest blocks, std/testing
testing/fstestMemFs
testing/quickproperty tests
testing/synctestFakeClock, deterministic scheduling under xo test
text/tabwriterstd/tabwriter (decision 0410)
text/templatestd/template
timeprelude Time, Duration, std/time
time/tzdatastd/tzdata, embedded per use
unicodeprelude Rune
unicode/utf8prelude Str, Bytes

Partial (33)

Some of it; the notes in the coverage table name what is missing.

Go packageXo
bufioFile, Conn, Child read and write, Fs.walk
crypto/aesstd/crypto
crypto/cipherstd/crypto
crypto/ecdhinside std/native/llrt (X25519, nistec)
crypto/ecdsastd/crypto
crypto/ellipticstd/crypto
crypto/mlkeminside std/native/llrt/mlkem.xo
crypto/rsastd/crypto
crypto/tlsstd/http (with_tls, with_roots, tls_cert), std/tls (client)
crypto/x509std/crypto (keys); inside std/native/llrt (x509.xo, x509verify.xo)
crypto/x509/pkixstd/crypto (keys); inside std/native/llrt (x509.xo, x509verify.xo)
database/sqlstd/sql
encoding/asn1inside std/native/llrt/asn1.xo
encoding/jsonstd/json
encoding/xmlstd/xml
fmtstring interpolation, Display, Debug
hashstd/crypto Hasher
html/templatestd/template
ioFile, Conn, Child read and write, Fs.walk
io/fsFile, Conn, Child read and write, Fs.walk
io/ioutilFile, Conn, Child read and write, Fs.walk
log/slogstd/log fields, Format.Json, std/trace
mathprelude Float
math/bigstd/big
mimestd/mime
mime/multipartstd/multipart
mime/quotedprintableinside std/native/multipart and mail
netprelude Net (TCP, Unix sockets, lookup_host, dial_timeout), std/udp, std/dns (MX, TXT, SRV, PTR), DNS client in std/native/llrt/dns.xo
net/httpstd/http Client
net/textprotoinside std/native/llrt (http1)
net/urlstd/url, std/http parse_url and Url
osprelude Fs, Env, Proc, Stdio
os/signalcore 7.5 shutdown, task.stop_requested, Proc.kill

Not applicable by design (52)

Reflection, Go source tooling, cgo and the runtime’s internals are replaced by language features or the toolchain, or the algorithm is broken or legacy.

container/list, crypto, crypto/fips140, crypto/mlkem/mlkemtest, debug/buildinfo, debug/dwarf, debug/elf, debug/gosym, debug/macho, debug/pe, debug/plan9obj, encoding, encoding/ascii85, go/ast, go/build, go/build/constraint, go/constant, go/doc, go/doc/comment, go/format, go/importer, go/parser, go/printer, go/scanner, go/token, go/types, go/version, image/color/palette, image/draw, image/gif, iter, math/cmplx, net/http/cgi, net/http/fcgi, net/http/httptrace, plugin, reflect, runtime, runtime/cgo, runtime/coverage, runtime/debug, runtime/metrics, runtime/pprof, runtime/race, runtime/trace, structs, syscall, testing/cryptotest, testing/iotest, testing/slogtest, text/template/parse, unsafe

Gaps, potentially planned (25)

Nothing yet, wanted. See Roadmap of gaps.

Go packageXo
compress/bzip2none
compress/lzwnone
container/ringnone
crypto/desnone
crypto/dsanone
crypto/hpkenone
crypto/rc4none
encoding/gobnone
hash/adler32std/adler32
hash/crc64std/crc64
hash/maphashnone
imagenone
image/colornone
image/jpegstd/jpeg
image/pngstd/png
index/suffixarraynone
log/syslognone
net/http/httputilnone
net/rpcnone
net/rpc/jsonrpcnone
os/userEnv.home
text/scannernone
unicode/utf16std/charset
uniquenone
weaknone

Beyond Go

Modules with no Go standard library counterpart, or that go past it: std/backoff (no Go std package), std/dns (net.Resolver covers part), std/metrics (expvar plus a Prometheus registry), std/rate (x/time/rate is outside std), std/sql (database/sql plus a PostgreSQL driver), std/toml (Go has no TOML in std), std/trace (no Go std tracing API of this kind), std/udp (net.UDPConn), std/uuid (Go has no UUID in std), std/websocket (Go has no websocket in std). Also in std/crypto: Argon2id password hashing, AES-GCM and ChaCha20-Poly1305 as public AEAD, HKDF.

Function level checks

The coverage table is checked against the code, not only the package names. Examples from this commit (xo symbols --module=... --pub):

  • crypto/md5, crypto/sha1: Hash.Md5 and Hash.Sha1 in std/crypto, one-shot and streaming (Hasher), also through hmac. Covered.
  • encoding/hex: Bytes.to_hex and Bytes.from_hex in the prelude. Covered; Go’s Dump is not offered.
  • hash/crc32: std/crc32 with Poly.Ieee and Poly.Castagnoli, checksum and update. Covered. hash/crc64 and hash/adler32 have no module: gaps.
  • net/http/cookiejar: std/http reads and writes cookies on a Request (cookie, cookies, with_cookie) but the client has no jar. Gap, planned with client cookies.

Roadmap of gaps

The gaps are potentially planned: a priority and a realistic timeframe, not a commitment. The ordering is the std owner’s estimate (2026-11-02) from port effort and demand, and the owner decides.

PriorityGapTimeframe
1encoding/gob, net/rpc; compress/bzip2, compress/lzw; small hashes (hash/crc64, hash/adler32); os/user; log/syslog; expvar; text/scanner; container/ring; unicode/utf16; index/suffixarrayQ1 2027
2legacy crypto (crypto/des, crypto/dsa, crypto/rc4); weak, uniquelast, or possibly never

The repository’s coverage table still lists some of these as not planned (for example encoding/gob, net/rpc, text/scanner, log/syslog, container/ring, index/suffixarray, the image packages); this page follows the owner’s list, and the table moves with the decision. CBOR is not a Go package; it is listed because it is first on the list.

Sources: std-coverage.md, std/changes (every module’s change log), decision 0276 and decision 0461.

↑ index