core Library Collection
- License: BSD-3-Clause
- Repository: https://github.com/odin-lang/Odin/tree/master/core
⌘K
Ctrl+K
or
/
Directories
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. |
libc | Declares the commonly used things in libc (C standard library). |
compress | A collection of utilities to aid with other compress ion packages. |
gzip | A small GZIP unpacker. |
shoco | Shoco short string compression and decompression. |
zlib | Deflate decompression of raw and ZLIB -type streams. |
container | |
avl | A non-intrusive and non-recursive implementation of AVL trees. |
bit_array | A dynamically-sized array of bits. |
intrusive/list | An intrusive doubly-linked list. |
lru | A least-recently-used (LRU ) cache. It automatically removes older entries if its capacity is reached. |
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 | A dynamic array-like interface on a stack-allocated, fixed-size array. |
topological_sort | A generic O(V+E) topological sorter implementation. This is the fastest known method for topological sorting. |
crypto | A selection of cryptography algorithms and useful helper routines. |
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. |
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. |
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. |
pbkdf2 | PBKDF2 password-based key derivation function. |
poly1305 | Poly1305 one-time MAC algorithm. |
ristretto255 | Ristretto255 prime-order group. |
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. |
debug | |
pe | A reader for the Windows PE executable format for debug purposes. |
trace | Stack trace library. Only works when debug symbols are enabled using -debug . |
dynlib | Cross-platform loading of shared libraries/DLLs and their symbols. |
encoding | |
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 rune s 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. |
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. |
xxhash | Yann Collet's xxhash . |
image | General 2D image types and procedures to be used with other image related 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 | Implementations of the context.Logger interface. |
math | Typical trignometric and other basic math routines. |
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 and flux easing 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. |
tlsf | Two Level Segregated Fit memory allocator. |
virtual | A platform agnostic way to reserve/commit/decommit virtual memory. |
net | Cross-platform Berkeley Sockets, DNS resolution and associated procedures. |
odin | |
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. |
os | Cross-platform OS interactions like file I/O . |
path | |
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 URL s. |
prof | |
spall | Profiling using the "spall " format. |
reflect | Utility procedures and types to perform runtime type introspection/reflection (RTTI ). |
relative | Relative pointers and slices. |
simd | Cross-platform SIMD support types and procedures. |
x86 | SIMD intrinsics specific to the Intel x86 and AMD64 architectures. |
slice | Utility procedures for working with slices, including sorting and searching them. |
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. |
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. |
chan | High-level and low-level channel types for thread-safe communication. |
sys | Platform 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) |
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) |
orca | Bindings for the Orca platform |
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) |
windows | (Generated with -target:windows_amd64 , please read the source code directly) |
terminal | Interaction with the command line interface (CLI ) of the system. |
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 | |
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. |
datetime | Calendrical conversions using a proleptic Gregorian calendar. |
timezone | Timezone lookup. |
unicode | Data and procedures to test properties of Unicode code points. |
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. |