Standard library
Core
Math and numbers
- Bit_OperationsByte swapping, bit scans and population count for integers of any size.
- Color_InterpolationFills an array with colors blended between keyframes, in RGB, HSV or Oklab.
- Float16The 16-bit IEEE half-precision storage format, with conversions to and from float32 and the Math vector and matrix types.
- MathVectors, quaternions, matrices, planes and the scalar math functions they build on.
- PCGA small 32-bit-output permuted congruential generator (XSH-RR) over a 64-bit state.
- RandomA fast 128-bit multiplicative generator for non-cryptographic random numbers.
- SIMDFixed-width vectors of lanes with lane-wise arithmetic, comparison, min/max and memory access.
- Sloppy_MathApproximate float comparison and the numeric limits of a type.
- SrgbConversion between sRGB-encoded and linear-light color values.
Memory and allocators
Data structures and sorting
- Bit_ArrayA fixed-length sequence of bits packed into words.
- Bucket_ArrayA collection with stable element addresses, grown a fixed-size bucket at a time.
- Hash_TableTable(Key, Value) maps keys to values.
- IntroSortThe comparator sorts that Sort is built from, for callers that want a specific algorithm.
- RadixSortRanks u32, u64 and float data by radix sorting, without moving it.
- SortIn-place sorting of arrays by a comparator or a key, and ready-made comparators.
- XarA growable array that allocates in chunks, so its elements never move.
Text and formats
- Base64Base64 encoding and decoding, in the standard alphabet and the URL-safe one.
- Print_Color
- StringSearching, comparing, splitting, trimming and scanning strings, and working with file paths.
- Subtitles
- Text_File_HandlerA line reader for simple text and configuration files.
- UnicodeDecoding and encoding UTF-8 text, one character at a time.
Files and OS
- Clipboard
- Command_Line
- FileOpening, reading, writing and managing files and directories by path.
- File_UtilitiesAsking about files, walking and copying folders, and taking paths apart.
- File_WatcherBeing told when files in a folder are created, changed, moved or removed.
- ProcessStarting programs, feeding them input and collecting their output and exit status.
- Simple_Package
- System
Threads and concurrency
Networking
Graphics and windows
Audio and video
Compression and hashing
Debugging, profiling and testing
Compiler and metaprogramming
- Autorun
- Bindings_Generator
- BuildCpp
- Check
- Code_Visit
- CodexUSAGE_MODE says what an importer does with the module: record a build (.WRITE, the default) or read a recorded one back (.READ), or both....
- Compiler
- Default_Metaprogram
- Example_Plugin
- Generate_C_Header
- Jai_LexerTurns Jai source text into tokens, with their types, values and positions.
- MacOS_Bundler
- Machine_X64
- Metaprogram_Plugins
- Minimal_Metaprogram
- Program_Print
- Project_Generator
- Rewrite
- executable_formats
- linux_build
Platform bindings
- Android
- AAudio
- EGL
- Toolchain
- Linux
- Metal
- MojoShader
- Objective_C
- AppKit
- POSIX
- Vulkan
- Wasi_Numeric_Runtime
- Windows
- Windows_Registry
- Windows_Resources
- Windows_Utf8
- X11
- d3d11
- d3d12
- d3d_compiler
- dxc_compiler
- dxgi
- freetype
- iOS
- macOS
- meshoptimizer
- nvidia_aftermath
- nvtt
- stb_image
- stb_image_resize
- stb_image_write
Extensions
Core
Math and numbers
Data structures and sorting
Text and formats
- Byte_SearchFast searches for bytes and substrings, with vector instructions. A jaic extension, not official Jai: other Jai compilers have no such...
- Jai_FormatA source formatter for Jai (indentation, spacing, brace placement, blank lines). Pure text in, text out: no file access (a front end passes...
- JsonTyped JSON for jaic programs, in the spirit of Rust's serde_json. Encoders and decoders are generated from your types at compile time, so...
- RegexRegular expressions with the syntax and guarantees of Rust's regex crate, full Unicode support, and patterns that can be compiled while...
- String_LiteralWhere a byte of a string literal's value sits in the source. A jaic extension, not official Jai: other Jai compilers have no such module,...
- Text_BufferAn editable UTF-8 text buffer with undo, for editors. A jaic extension, not official Jai: other Jai compilers have no such module, and it...
Files and OS
- ArgsA typed, compile-time-generated command-line parser for jaic programs, in the spirit of Rust's clap derive. A jaic extension, not official...
- AssetsLoad a file a program ships with (a texture, a sound, a level) by a relative path, from disk natively and over fetch() in the browser...
- EnvironmentReading the variables the program was started with.
Threads and concurrency
Networking
- HttpHTTP/1.0 and HTTP/1.1 message codecs, plus a server, a client and test tools on top of them for fibers. A jaic extension, not official Jai:...
- PostgresA PostgreSQL client over Io fibers. A jaic extension, not official Jai: other Jai compilers have no such module, and it may change between...
- TlsTLS 1.2 and 1.3 over Io readers and writers, on a bundled mbedTLS. A jaic extension, not official Jai: other Jai compilers have no such...
Graphics and windows
- ImageDecode, encode and transform raster images, in plain Jai (natively, in the playground and in -os wasm programs). A jaic extension, not...
- SDL3
- UIA native user interface library for jaic programs. A jaic extension, not official Jai: other Jai compilers have no such module, and it may...
- WebGPUWebGPU through the standard C API (webgpu.h). Natively the procedures call wgpu-native; in the browser playground they go to the page's...