core Library Collection
The core library: formatted printing, strings, memory and allocators, containers, math, encoding, OS access, threading, and more.
⌘K
Ctrl+K
or
/
Packages 176
| bufio | Wraps an io.Stream interface to provide buffered I/O. | |
| bytes | Procedures for manipulation of []byte slices. | |
| c | Defines the basic types used by C programs for foreign function and data structure interop. 1 package | |
| libc | Declares the commonly used things in libc (C standard library). | |
| compress | A collection of utilities to aid with other compression packages. 3 packages | |
| gzip | A small GZIP unpacker. | |
| shoco | Shoco short string compression and decompression. | |
| zlib | Deflate decompression of raw and ZLIB-type streams. | |
| container | 12 packages | |
| avl | A non-intrusive and non-recursive implementation of AVL trees. | |
| bit_array | A dynamically-sized array of bits. | |
| handle_map | Handle-based map using either fixed-length arrays, or exponential arrays from "core:container/xar". | |
| intrusive/list | An intrusive doubly-linked list. | |
| lru | A least-recently-used (LRU) cache. It automatically removes older entries if its capacity is reached. | |
| pool | ||
| priority_queue | A priority queue data structure. | |
| queue | A dynamically resizable double-ended queue/ring-buffer. | |
| rbtree | A red-black tree with the same API as our AVL tree. | |
| small_array | Deprecation Notice: Prefer using [dynamic; N]T (fixed capacity dynamic arrays). | |
| topological_sort | A generic O(V+E) topological sorter implementation. This is the fastest known method for topological sorting. | |
| xar | Exponential Array (Xar). | |
| crypto | A selection of cryptography algorithms and useful helper routines. 34 packages | |
| aead | A generic interface to Authenticated Encryption with Associated Data (AEAD) algorithms. | |
| aegis | AEGIS-128L and AEGIS-256 AEAD algorithms. | |
| aes | The AES block cipher and some common modes. | |
| argon2id | package argon2id implements the Argon2id password hashing algorithm. | |
| blake2b | BLAKE2b hash algorithm. | |
| blake2s | BLAKE2s hash algorithm. | |
| chacha20 | ChaCha20 and XChaCha20 stream ciphers. | |
| chacha20poly1305 | AEAD_CHACHA20_POLY1305 and AEAD_XChaCha20_Poly1305 algorithms. | |
| deoxysii | Deoxys-II-256 Authenticated Encryption with Additional Data (AEAD) algorithm. | |
| ecdh | A generic interface to Elliptic Curve Diffie-Hellman key exchange. | |
| ecdsa | Elliptic Curve Digital Signature Algorithm per SEC 2.0 section 4.1. | |
| ed25519 | Ed25519 EdDSA signature algorithm. | |
| hash | A generic interface to the supported hash algorithms. | |
| hkdf | HKDF HMAC-based Extract-and-Expand Key Derivation Function. | |
| hmac | HMAC message authentication code (MAC) algorithm. | |
| kmac | KMAC message authentication code (MAC) algorithm. | |
| legacy/keccak | Keccak hash algorithm family. | |
| legacy/md5 | MD5 hash algorithm. | |
| legacy/sha1 | SHA1 hash algorithm. | |
| mldsa | Module-Lattice-Based Digital Signature Algorithm. | |
| mlkem | ML-KEM Module-Lattice-Based Key-Encapsulation Mechanism. | |
| noise | An implementation of the Noise Protocol Framework (Revision 34). | |
| pbkdf2 | PBKDF2 password-based key derivation function. | |
| poly1305 | Poly1305 one-time MAC algorithm. | |
| ristretto255 | Ristretto255 prime-order group. | |
| rsa | RSA (Rivest–Shamir–Adleman) cryptosystem. | |
| sha2 | SHA2 hash algorithm family. | |
| sha3 | SHA3 hash algorithm family. | |
| shake | SHAKE and cSHAKE XOF algorithm families. | |
| sm3 | SM3 hash algorithm. | |
| tuplehash | TupleHash and TupleHashXOF algorithms. | |
| x25519 | X25519 (aka curve25519) Elliptic-Curve Diffie-Hellman key exchange protocol. | |
| x448 | X448 (aka curve448) Elliptic-Curve Diffie-Hellman key exchange protocol. | |
| x509 | X.509 v3 certificate parsing, signature verification, and chain (path) | |
| debug | 2 packages | |
| pe | A reader for the Windows PE executable format for debug purposes. | |
| trace | Captures and resolves stack traces for debugging purpose. | |
| diff | Differences between two sequences: which tokens of a were deleted and which tokens of b were inserted. | |
| dynlib | Cross-platform loading of shared libraries/DLLs and their symbols. | |
| encoding | 16 packages | |
| asn1 | Strict DER (Distinguished Encoding Rules) reader and writer for the PKIX | |
| base32 | Base32 encoding and decoding, as specified in RFC 4648. | |
| base64 | Base64 encoding and decoding. | |
| cbor | Encodes and decodes types from/into RCF 8949 compatible CBOR binary. | |
| csv | Reader and writer for comma-separated values (CSV) files, per RFC 4180. | |
| endian | A simple translation between bytes and numbers with specific endian encodings. | |
| entity | Encode and decode runes to/from a Unicode &entity;. | |
| hex | Encoding and decoding of hex-encoded binary, e.g. 0x23 -> #. | |
| hxa | Eskil Steenberg's HxA 3D asset interchange format. | |
| ini | Reader and writer for a variant of the .ini file format with key = value entries in [sections]. | |
| json | Encoding and decoding JSON in strict JSON, JSON5 and BitSquid variants. | |
| pem | Encodes and decodes PEM formatted data. | |
| uuid | Universally Unique Identifiers (UUID) according to RFC 4122, with additions from RFC 9562. | |
| uuid/legacy | Versions 3 and 5 of UUID generation, both of which use legacy (MD5 + SHA1) hashes. | |
| varint | LEB128 variable integer encoding and decoding, as used by DWARF & DEX files. | |
| xml | A parser for a useful subset of the XML specification. | |
| flags | Command-line argument parser. | |
| fmt | Formatted I/O with procedures similar to C's printf and Python's format. | |
| hash | crc32, crc64, adler32, djb, fnv, jenkins, murmur and other hashes. 1 package | |
| xxhash | Yann Collet's xxhash. | |
| image | General 2D image types and procedures to be used with other image related packages. 6 packages | |
| bmp | Reader and writer for Microsoft BMP images. | |
| jpeg | Reader for baseline JPEG images. | |
| netpbm | Readers and writers for PBM, PGM, PPM, PAM and PFM images. | |
| png | Reader for PNG images. | |
| qoi | Reader and writer for QOI images. | |
| tga | Reader and writer for 8-bit RGB and RGBA TGA images. | |
| io | Basic interfaces for generic data stream primitives. | |
| log | Implementation of logging facilities. | |
| math | Typical trignometric and other basic math routines. 10 packages | |
| big | Arbitrary precision integers and rationals. | |
| bits | Bit-level operations, including the ability to set or toggle individual bits in an integer. | |
| cmplx | Trigonometric and other mathematic operations on complex numbers. | |
| ease | Easing procedures used for animations. | |
| fixed | Fixed-point rational numbers and conversion to/from f64. | |
| linalg | Linear algebra procedures useful for 3D spatial transformations. | |
| linalg/glsl | GLSL-like mathematics library plus numerous other utility procedures. | |
| linalg/hlsl | HLSL-like mathematics library plus numerous other utility procedures. | |
| noise | OpenSimplex2 noise algorithm. | |
| rand | Random number generators. | |
| mem | Various allocators and provides helpers for dealing with memory, pointers and slices. 2 packages | |
| tlsf | Two Level Segregated Fit memory allocator. | |
| virtual | A platform agnostic way to reserve/commit/decommit virtual memory. | |
| nbio | package nbio implements a non-blocking I/O and event loop abstraction layer | |
| net | Cross-platform Berkeley Sockets, DNS resolution and associated procedures. | |
| odin | 5 packages | |
| ast | Abstract Syntax Tree for the Odin parser packages. | |
| doc-format | The .odin-doc file format, as used by these package docs at pkg.odin-lang.org. | |
| parser | The Odin file parser to be used in tooling. | |
| tokenizer | The tokenizer (lexer) for Odin files, used to create tooling. | |
| tool-format | The formats of the files odin exchanges with editors and other tools. | |
| os | A cross-platform API for things like I/O, intended to be uniform across all operating systems. | |
| path | 2 packages | |
| filepath | Process paths using either forward slashes or backslashes depending on the operating system. | |
| slashpath | Process paths separated by forward slashes only, e.g. paths in URLs. | |
| prof | 1 package | |
| spall | Profiling using the "spall" format. | |
| reflect | Utility procedures and types to perform runtime type introspection/reflection (RTTI). | |
| relative | Relative pointers and slices. | |
| rexcode | High-performance multi-architecture instruction encoder/decoder/printer 14 packages | |
| ir | core:rexcode/ir is to the intermediate representations (WASM, SPIR-V, LLVM | |
| ir/spirv | rexcode · Brendan Punsky (dotbmp@github), original author | |
| ir/wasm | rexcode/ir/wasm -- the WebAssembly intermediate representation. | |
| isa | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/arm32 | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/arm64 | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/mips | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/mos6502 | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/mos65816 | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/ppc | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/ppc_vle | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/riscv | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/rsp | rexcode · Brendan Punsky (dotbmp@github), original author | |
| isa/x86 | rexcode · Brendan Punsky (dotbmp@github), original author | |
| simd | Cross-platform SIMD support types and procedures. 1 package | |
| x86 | SIMD intrinsics specific to the Intel x86 and AMD64 architectures. | |
| slice | Utility procedures for working with slices, including sorting and searching them. 1 package | |
| heap | A generic in-place max heap on a slice for any type. | |
| sort | A sorting interface and algorithms. | |
| strconv | Conversions to and from string representations of other data types like integers and booleans. 1 package | |
| decimal | Multiple precision decimal numbers for use by the strconv package. | |
| strings | A string builder, as well as procedures to manipulate UTF-8 encoded strings. | |
| sync | Various synchronization primitives useful to mediate threads' access to shared memory. 1 package | |
| chan | High-level and low-level channel types for thread-safe communication. | |
| sys | Platform specific packages - documentation may be for a specific platform only 13 packages | |
| darwin | (Generated with -target:darwin_arm64, please read the source code directly) | |
| freebsd | (Generated with -target:freebsd_amd64, please read the source code directly) | |
| info | Gathers system information on Windows, Linux, macOS, FreeBSD & OpenBSD. | |
| kqueue | (Generated with -target:darwin_arm64, please read the source code directly) | |
| linux | (Generated with -target:linux_arm64, please read the source code directly) | |
| linux/uring | Wrapper/convenience package over the raw io_uring syscalls, providing help with setup, creation, and operating the ring. | |
| orca | (Generated with -target:windows_amd64, please read the source code directly) | |
| posix | Raw bindings for most POSIX APIs. | |
| unix | (Generated with -target:linux_arm64, please read the source code directly) | |
| valgrind | (Generated with -target:windows_amd64, please read the source code directly) | |
| wasm/js | (Generated with -target:js_wasm32, please read the source code directly) | |
| wasm/wasi | (Generated with -target:js_wasm32, please read the source code directly) | |
| windows | (Generated with -target:windows_amd64, please read the source code directly) | |
| terminal | Interaction with the command line interface (CLI) of the system. 1 package | |
| ansi | Constant references to many widely-supported ANSI escape codes. | |
| testing | The implementation of the odin test runner and procedures user tests can use for this purpose. | |
| text | 12 packages | |
| edit | Text edit primitives to use in a text box. | |
| i18n | A flexible and easy way to add translations/internationalization (i18n) to applications. | |
| match | A Lua-like string match algorithm. | |
| regex | A complete suite for using Regular Expressions to match and capture text. | |
| regex/common | This package helps break dependency cycles for the regular expression engine. | |
| regex/compiler | A bytecode compiler for the virtual machine included alongside it. | |
| regex/optimizer | An optimizer for the regular expression AST. | |
| regex/parser | A Pratt parser (a.k.a. Top-Down Operator Precedence parser) for parsing tokenized regular expression patterns. | |
| regex/tokenizer | Tokenizes regular expressions. | |
| regex/virtual_machine | A threaded virtual machine for interpreting regular expressions. | |
| scanner | A scanner and tokenizer for UTF-8-encoded text. | |
| table | Plain-text/markdown/HTML/custom rendering of tables. | |
| thread | Multi-threading operations to spawn threads and thread pools. | |
| time | Time-related procedures and types, including sleep, now, and string formatting of moments. 2 packages | |
| datetime | Calendrical conversions using a proleptic Gregorian calendar. | |
| timezone | Timezone lookup. | |
| unicode | Data and procedures to test properties of Unicode code points. 3 packages | |
| utf16 | Procedures and constants to support text-encoding in the UTF-16 character encoding. | |
| utf8 | Procedures and constants to support text-encoding in the UTF-8 character encoding. | |
| utf8/utf8string | A convenient and efficient way to index strings by Unicode code point (rune) rather than byte. |