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

Xo 0.12 release notes

released 2026-10-15 · tag v0.12.0 · all releases

Introduction

Xo 0.12 moves most of the native runtime into Xo: its C went from 26,743 lines to about 5,900.

Runtime

  • The scheduler, the event loop, sockets, processes, the test world, the HTTP/1.1 and HTTP/2 client and server, standard input, the file system, and the program’s entry are Xo.
  • The backends call the Xo runtime’s allocation, reference count, list, string, heap, and Any entries directly.
  • A fault in middleware or a connection no longer stops the native HTTP server.

Compiler

  • Crypto intrinsics: add and subtract with carry, AES rounds, and carry-less multiply (decision 0231). External C symbols can be referenced from Xo weakly (decision 0232).
  • == on enum constants folds at compile time.
  • An inlining verification failure is reported, not hidden.

Standard library

  • TLS 1.2 and 1.3, X.509 parsing and verification, and the crypto under them (SHA-2, SHA-3, HMAC, HKDF, AES-GCM, ChaCha20-Poly1305, X25519, P-224 to P-521, RSA, Ed25519, and the ML-KEM-768 and -1024 hybrids) are Xo, matching Go 1.26’s behavior and group list (decision 0202). The default build links no Mbed TLS or fiat-crypto.