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

    bufioWraps an io.Stream interface to provide buffered I/O.
    bytesProcedures for manipulation of []byte slices.
    cDefines the basic types used by C programs for foreign function and data structure interop. 1 package
    libcDeclares the commonly used things in libc (C standard library).
    compressA collection of utilities to aid with other compression packages. 3 packages
    gzipA small GZIP unpacker.
    shocoShoco short string compression and decompression.
    zlibDeflate decompression of raw and ZLIB-type streams.
    container 12 packages
    avlA non-intrusive and non-recursive implementation of AVL trees.
    bit_arrayA dynamically-sized array of bits.
    handle_mapHandle-based map using either fixed-length arrays, or exponential arrays from "core:container/xar".
    intrusive/listAn intrusive doubly-linked list.
    lruA least-recently-used (LRU) cache. It automatically removes older entries if its capacity is reached.
    pool
    priority_queueA priority queue data structure.
    queueA dynamically resizable double-ended queue/ring-buffer.
    rbtreeA red-black tree with the same API as our AVL tree.
    small_arrayDeprecation Notice: Prefer using [dynamic; N]T (fixed capacity dynamic arrays).
    topological_sortA generic O(V+E) topological sorter implementation. This is the fastest known method for topological sorting.
    xarExponential Array (Xar).
    cryptoA selection of cryptography algorithms and useful helper routines. 34 packages
    aeadA generic interface to Authenticated Encryption with Associated Data (AEAD) algorithms.
    aegisAEGIS-128L and AEGIS-256 AEAD algorithms.
    aesThe AES block cipher and some common modes.
    argon2idpackage argon2id implements the Argon2id password hashing algorithm.
    blake2bBLAKE2b hash algorithm.
    blake2sBLAKE2s hash algorithm.
    chacha20ChaCha20 and XChaCha20 stream ciphers.
    chacha20poly1305AEAD_CHACHA20_POLY1305 and AEAD_XChaCha20_Poly1305 algorithms.
    deoxysiiDeoxys-II-256 Authenticated Encryption with Additional Data (AEAD) algorithm.
    ecdhA generic interface to Elliptic Curve Diffie-Hellman key exchange.
    ecdsaElliptic Curve Digital Signature Algorithm per SEC 2.0 section 4.1.
    ed25519Ed25519 EdDSA signature algorithm.
    hashA generic interface to the supported hash algorithms.
    hkdfHKDF HMAC-based Extract-and-Expand Key Derivation Function.
    hmacHMAC message authentication code (MAC) algorithm.
    kmacKMAC message authentication code (MAC) algorithm.
    legacy/keccakKeccak hash algorithm family.
    legacy/md5MD5 hash algorithm.
    legacy/sha1SHA1 hash algorithm.
    mldsaModule-Lattice-Based Digital Signature Algorithm.
    mlkemML-KEM Module-Lattice-Based Key-Encapsulation Mechanism.
    noiseAn implementation of the Noise Protocol Framework (Revision 34).
    pbkdf2PBKDF2 password-based key derivation function.
    poly1305Poly1305 one-time MAC algorithm.
    ristretto255Ristretto255 prime-order group.
    rsaRSA (Rivest–Shamir–Adleman) cryptosystem.
    sha2SHA2 hash algorithm family.
    sha3SHA3 hash algorithm family.
    shakeSHAKE and cSHAKE XOF algorithm families.
    sm3SM3 hash algorithm.
    tuplehashTupleHash and TupleHashXOF algorithms.
    x25519X25519 (aka curve25519) Elliptic-Curve Diffie-Hellman key exchange protocol.
    x448X448 (aka curve448) Elliptic-Curve Diffie-Hellman key exchange protocol.
    x509X.509 v3 certificate parsing, signature verification, and chain (path)
    debug 2 packages
    peA reader for the Windows PE executable format for debug purposes.
    traceCaptures and resolves stack traces for debugging purpose.
    diffDifferences between two sequences: which tokens of a were deleted and which tokens of b were inserted.
    dynlibCross-platform loading of shared libraries/DLLs and their symbols.
    encoding 16 packages
    asn1Strict DER (Distinguished Encoding Rules) reader and writer for the PKIX
    base32Base32 encoding and decoding, as specified in RFC 4648.
    base64Base64 encoding and decoding.
    cborEncodes and decodes types from/into RCF 8949 compatible CBOR binary.
    csvReader and writer for comma-separated values (CSV) files, per RFC 4180.
    endianA simple translation between bytes and numbers with specific endian encodings.
    entityEncode and decode runes to/from a Unicode &entity;.
    hexEncoding and decoding of hex-encoded binary, e.g. 0x23 -> #.
    hxaEskil Steenberg's HxA 3D asset interchange format.
    iniReader and writer for a variant of the .ini file format with key = value entries in [sections].
    jsonEncoding and decoding JSON in strict JSON, JSON5 and BitSquid variants.
    pemEncodes and decodes PEM formatted data.
    uuidUniversally Unique Identifiers (UUID) according to RFC 4122, with additions from RFC 9562.
    uuid/legacyVersions 3 and 5 of UUID generation, both of which use legacy (MD5 + SHA1) hashes.
    varintLEB128 variable integer encoding and decoding, as used by DWARF & DEX files.
    xmlA parser for a useful subset of the XML specification.
    flagsCommand-line argument parser.
    fmtFormatted I/O with procedures similar to C's printf and Python's format.
    hashcrc32, crc64, adler32, djb, fnv, jenkins, murmur and other hashes. 1 package
    xxhashYann Collet's xxhash.
    imageGeneral 2D image types and procedures to be used with other image related packages. 6 packages
    bmpReader and writer for Microsoft BMP images.
    jpegReader for baseline JPEG images.
    netpbmReaders and writers for PBM, PGM, PPM, PAM and PFM images.
    pngReader for PNG images.
    qoiReader and writer for QOI images.
    tgaReader and writer for 8-bit RGB and RGBA TGA images.
    ioBasic interfaces for generic data stream primitives.
    logImplementation of logging facilities.
    mathTypical trignometric and other basic math routines. 10 packages
    bigArbitrary precision integers and rationals.
    bitsBit-level operations, including the ability to set or toggle individual bits in an integer.
    cmplxTrigonometric and other mathematic operations on complex numbers.
    easeEasing procedures used for animations.
    fixedFixed-point rational numbers and conversion to/from f64.
    linalgLinear algebra procedures useful for 3D spatial transformations.
    linalg/glslGLSL-like mathematics library plus numerous other utility procedures.
    linalg/hlslHLSL-like mathematics library plus numerous other utility procedures.
    noiseOpenSimplex2 noise algorithm.
    randRandom number generators.
    memVarious allocators and provides helpers for dealing with memory, pointers and slices. 2 packages
    tlsfTwo Level Segregated Fit memory allocator.
    virtualA platform agnostic way to reserve/commit/decommit virtual memory.
    nbiopackage nbio implements a non-blocking I/O and event loop abstraction layer
    netCross-platform Berkeley Sockets, DNS resolution and associated procedures.
    odin 5 packages
    astAbstract Syntax Tree for the Odin parser packages.
    doc-formatThe .odin-doc file format, as used by these package docs at pkg.odin-lang.org.
    parserThe Odin file parser to be used in tooling.
    tokenizerThe tokenizer (lexer) for Odin files, used to create tooling.
    tool-formatThe formats of the files odin exchanges with editors and other tools.
    osA cross-platform API for things like I/O, intended to be uniform across all operating systems.
    path 2 packages
    filepathProcess paths using either forward slashes or backslashes depending on the operating system.
    slashpathProcess paths separated by forward slashes only, e.g. paths in URLs.
    prof 1 package
    spallProfiling using the "spall" format.
    reflectUtility procedures and types to perform runtime type introspection/reflection (RTTI).
    relativeRelative pointers and slices.
    rexcodeHigh-performance multi-architecture instruction encoder/decoder/printer 14 packages
    ircore:rexcode/ir is to the intermediate representations (WASM, SPIR-V, LLVM
    ir/spirvrexcode · Brendan Punsky (dotbmp@github), original author
    ir/wasmrexcode/ir/wasm -- the WebAssembly intermediate representation.
    isarexcode · Brendan Punsky (dotbmp@github), original author
    isa/arm32rexcode · Brendan Punsky (dotbmp@github), original author
    isa/arm64rexcode · Brendan Punsky (dotbmp@github), original author
    isa/mipsrexcode · Brendan Punsky (dotbmp@github), original author
    isa/mos6502rexcode · Brendan Punsky (dotbmp@github), original author
    isa/mos65816rexcode · Brendan Punsky (dotbmp@github), original author
    isa/ppcrexcode · Brendan Punsky (dotbmp@github), original author
    isa/ppc_vlerexcode · Brendan Punsky (dotbmp@github), original author
    isa/riscvrexcode · Brendan Punsky (dotbmp@github), original author
    isa/rsprexcode · Brendan Punsky (dotbmp@github), original author
    isa/x86rexcode · Brendan Punsky (dotbmp@github), original author
    simdCross-platform SIMD support types and procedures. 1 package
    x86SIMD intrinsics specific to the Intel x86 and AMD64 architectures.
    sliceUtility procedures for working with slices, including sorting and searching them. 1 package
    heapA generic in-place max heap on a slice for any type.
    sortA sorting interface and algorithms.
    strconvConversions to and from string representations of other data types like integers and booleans. 1 package
    decimalMultiple precision decimal numbers for use by the strconv package.
    stringsA string builder, as well as procedures to manipulate UTF-8 encoded strings.
    syncVarious synchronization primitives useful to mediate threads' access to shared memory. 1 package
    chanHigh-level and low-level channel types for thread-safe communication.
    sysPlatform 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)
    infoGathers 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/uringWrapper/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)
    posixRaw 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)
    terminalInteraction with the command line interface (CLI) of the system. 1 package
    ansiConstant references to many widely-supported ANSI escape codes.
    testingThe implementation of the odin test runner and procedures user tests can use for this purpose.
    text 12 packages
    editText edit primitives to use in a text box.
    i18nA flexible and easy way to add translations/internationalization (i18n) to applications.
    matchA Lua-like string match algorithm.
    regexA complete suite for using Regular Expressions to match and capture text.
    regex/commonThis package helps break dependency cycles for the regular expression engine.
    regex/compilerA bytecode compiler for the virtual machine included alongside it.
    regex/optimizerAn optimizer for the regular expression AST.
    regex/parserA Pratt parser (a.k.a. Top-Down Operator Precedence parser) for parsing tokenized regular expression patterns.
    regex/tokenizerTokenizes regular expressions.
    regex/virtual_machineA threaded virtual machine for interpreting regular expressions.
    scannerA scanner and tokenizer for UTF-8-encoded text.
    tablePlain-text/markdown/HTML/custom rendering of tables.
    threadMulti-threading operations to spawn threads and thread pools.
    timeTime-related procedures and types, including sleep, now, and string formatting of moments. 2 packages
    datetimeCalendrical conversions using a proleptic Gregorian calendar.
    timezoneTimezone lookup.
    unicodeData and procedures to test properties of Unicode code points. 3 packages
    utf16Procedures and constants to support text-encoding in the UTF-16 character encoding.
    utf8Procedures and constants to support text-encoding in the UTF-8 character encoding.
    utf8/utf8stringA convenient and efficient way to index strings by Unicode code point (rune) rather than byte.