Directories

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.
libcDeclares the commonly used things in libc (C standard library).
compressA collection of utilities to aid with other compression packages.
gzipA small GZIP unpacker.
shocoShoco short string compression and decompression.
zlibDeflate decompression of raw and ZLIB-type streams.
container 
avlA non-intrusive and non-recursive implementation of AVL trees.
bit_arrayA dynamically-sized array of bits.
intrusive/listAn intrusive doubly-linked list.
lruA least-recently-used (LRU) cache. It automatically removes older entries if its capacity is reached.
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_arrayA dynamic array-like interface on a stack-allocated, fixed-size array.
topological_sortA generic O(V+E) topological sorter implementation. This is the fastest known method for topological sorting.
cryptoA selection of cryptography algorithms and useful helper routines.
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.
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.
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.
pbkdf2PBKDF2 password-based key derivation function.
poly1305Poly1305 one-time MAC algorithm.
ristretto255Ristretto255 prime-order group.
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.
debug 
peA reader for the Windows PE executable format for debug purposes.
traceStack trace library. Only works when debug symbols are enabled using -debug.
dynlibCross-platform loading of shared libraries/DLLs and their symbols.
encoding 
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.
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.
xxhashYann Collet's xxhash.
imageGeneral 2D image types and procedures to be used with other image related 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.
logImplementations of the context.Logger interface.
mathTypical trignometric and other basic math routines.
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 and flux easing 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.
tlsfTwo Level Segregated Fit memory allocator.
virtualA platform agnostic way to reserve/commit/decommit virtual memory.
netCross-platform Berkeley Sockets, DNS resolution and associated procedures.
odin 
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.
osCross-platform OS interactions like file I/O.
path 
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 
spallProfiling using the "spall" format.
reflectUtility procedures and types to perform runtime type introspection/reflection (RTTI).
relativeRelative pointers and slices.
simdCross-platform SIMD support types and procedures.
x86SIMD intrinsics specific to the Intel x86 and AMD64 architectures.
sliceUtility procedures for working with slices, including sorting and searching them.
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.
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.
chanHigh-level and low-level channel types for thread-safe communication.
sysPlatform specific packages - documentation may be for a specific platform only
darwin(Generated with -target:darwin_arm64, please read the source code directly)
darwin/CoreFoundation(Generated with -target:darwin_arm64, please read the source code directly)
darwin/Foundation(Generated with -target:darwin_arm64, please read the source code directly)
darwin/Security(Generated with -target:darwin_arm64, please read the source code directly)
freebsd(Generated with -target:freebsd_amd64, please read the source code directly)
haiku(Generated with -target:haiku_arm64, 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)
orcaBindings for the Orca platform
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)
windows(Generated with -target:windows_amd64, please read the source code directly)
terminalInteraction with the command line interface (CLI) of the system.
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 
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.
datetimeCalendrical conversions using a proleptic Gregorian calendar.
timezoneTimezone lookup.
unicodeData and procedures to test properties of Unicode code points.
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.