The Standard Library
The standard library is the core selling point for Eryx. This section of the documentation contains pages discussing many of the built in libraries. Some libraries, or groups of libraries, are too complex to be aptly described in a single page, and instead have their own sections.
The remainder of this page lists out every available library. Each available library is categorised into one of the following statuses:
| Status | Meaning |
|---|---|
| Complete | The library is complete and fully usable |
| Mostly complete | The library is mature but not complete, but what is present is usable |
| Partial | The library is partially complete, but what is present is usable |
| Unusable | The library is in an early stage of development, and is not expected to work properly |
| Planned | The library does not exist yet |
Core language features
| Library | Status | Description |
|---|---|---|
| @eryx/luau | Complete | Access to luau language features (analysis, compiling) |
| @eryx/task | Complete | Concurrency helpers |
| @eryx/exception | Complete | Exception formatting and helpers |
| @eryx/_ffi | Win32, Partial[1] | Low-level foreign function interfaces |
| Marshall | Planned | Binary-encoded format of Luau objects |
Development utilities
| Library | Status | Description |
|---|---|---|
| @eryx/pprint | Complete | Data pretty-printer |
| @eryx/schema | Complete | Runtime type checking, and some more complex checks too |
| @eryx/test | Complete | Unit testing framework |
| @eryx/eryxdoc | Complete | Documentation generation engine |
| @eryx/signal | Complete | Provides signals that can be subscribed to |
| @eryx/date | Complete | Dates and times with timezone support |
| @eryx/logging | Complete | Structured logging utilities |
| Retry helpers | Planned | Helpers for retrying failed actions |
| Caching (LRU)? | Planned | Function result caching |
Text processing
| Library | Status | Description |
|---|---|---|
| @eryx/regex | Complete | Regular expression support (PCRE2) |
| Text utils | Planned | Wrapping, un-indenting, diffing |
Command-line interface
| Library | Status | Description |
|---|---|---|
| @eryx/stdio | Mostly complete[3] | Standard input and output interact |
| @eryx/argparse | Partial[2] | Command-line option parser |
| Curses? Maybe? Or just our own TUI | Planned | Basic terminal UI functionality |
I/O and OS operations
| Library | Status | Description |
|---|---|---|
| @eryx/os | Mostly complete[4] | OS interactions |
| @eryx/fs | Mostly complete[5] | Filesystem operations |
| @eryx/vfs | Mostly complete[6] | Virtual filesystem operations |
| @eryx/fs_watch | Complete | High level filesystem water bindings |
| @eryx/_fs_watch | Complete | Low level interface consumed by fs_watch |
| Glob | Planned | Filesystem search using globs |
| Temp files | Planned | Creation and management of temporary files and folders |
| Windows registry | Planned | Access to the Windows registry |
Networking
| Library | Status | Description |
|---|---|---|
| @eryx/http | Mostly complete[7] | HTTP client and server |
| @eryx/net | Complete | Basic TCP client and server |
| @eryx/websocket | Partial[8] | Websocket client and server |
| @eryx/mime | Unusable[9] | MIME format detection |
| @eryx/_socket | Complete | Low level BSD-style socket interface |
| @eryx/ip | Complete | Parsing and manipulation of IP addresses and network ranges |
| @eryx/_ssl | Mostly Complete[10] | Low level SSL interface to be used with _socket |
| UUID | Planned | Creation and manipulation of UUIDs |
| RPC | Planned | RCON, JSON-RPC, XML-RPC |
| Planned | ||
| FTP | Planned | Support for the FTP protocol |
| IMAP | Planned | Support for the IMAP protocol |
| SMTP | Planned | Support for the SMTP protocol |
| JWT | Planned | Creation and manipulation of JWTs |
Databases
| Library | Status | Description |
|---|---|---|
| @eryx/sqlite3 | Complete | Bindings for SQLite3 databases |
Encoding
| Library | Status | Description |
|---|---|---|
| @eryx/encoding/base64 | Complete | Base64 encoding and decoding |
| @eryx/encoding/base85 | Complete | Base85 encoding and decoding |
| @eryx/encoding/base32 | Complete | Base32 encoding and decoding |
| @eryx/encoding/hex | Complete | HEX encoding and decoding |
| @eryx/encoding/url | Complete | URL-escape encoding and decoding |
| @eryx/encoding/csv | Complete | CSV parser and writer |
| @eryx/encoding/json | Complete | JSON parser and writer |
| @eryx/encoding/xml | Complete | XML parser and writer |
| @eryx/encoding/yaml | Mostly complete[11] | YAML parser and writer |
| TOML | Planned | TOML parser and writer |
Compression
| Library | Status | Description |
|---|---|---|
| @eryx/compression/brotli | Complete | Brotli compression and decompression |
| @eryx/compression/bzip2 | Complete | BZip2 compression and decompression |
| @eryx/compression/gzip | Complete | GZip compression and decompression |
| @eryx/compression/zlib | Complete | Zlib compression and decompression |
| @eryx/compression/zstd | Complete | Brotli compression and decompression |
| @eryx/compression/zip | Mostly complete[12] | Zip file manipulation |
Cryptography
| Library | Status | Description |
|---|---|---|
| @eryx/crypto/password | Complete | High level password hashing |
| @eryx/crypto/secretbox | Complete | High level authenticated encryption |
| @eryx/crypto/hmac | Complete | High level HMACs |
| @eryx/crypto/hash | Complete | High level message digests |
| @eryx/crypto/hazmat/aes | Complete | AES ciphers |
| @eryx/crypto/hazmat/camellia | Complete | Camellia ciphers |
| @eryx/crypto/hazmat/chacha20 | Complete | ChaCha20 ciphers |
| @eryx/crypto/hazmat/des | Complete | 3DES ciphers |
| @eryx/crypto/hazmat/rsa | Complete | RSA ciphers |
| @eryx/crypto/hazmat/hash | Complete | Various hashing functions |
| @eryx/crypto/hazmat/hmac | Complete | HMAC generation |
| @eryx/crypto/hazmat/kdf | Complete | Key derivation functions |
| @eryx/crypto/hazmat/pem | Complete | PEM/DER format support |
| @eryx/crypto/hazmat/random | Complete | Secure random number and data generator |
| @eryx/crypto/hazmat/ecc | Partial | ECC keys, ECDSA signing, ECDH derivation |
| @eryx/crypto/hazmat/argon2 | Partial | Argon2d, Argon2i, and Argon2id hashing |
| @eryx/crypto/hazmat/asn1 | Unusable[13] | ASN1 format support |
Text file formats
| Library | Status | Description |
|---|---|---|
| @eryx/markdown | Mostly complete[14] | Markdown parser |
| @eryx/template | Complete | Templating engine |
Multimedia and interfaces
| Library | Status | Description |
|---|---|---|
| @eryx/image | Partial[17] | Support for various image formats |
| @eryx/webview | Win32, Unusable[15] | Create and manipulate native WebView browsers |
| @eryx/webui | Unusable[16] | Wrapper for webview proving convenient JS<->Eryx communication |
| Audio | Planned | Support for various audio formats |
-
Currently only supports Windows, and likely has GC-related problems ↩︎
-
Still lacks some advanced CLI ergonomics, but now supports variadic positionals, multi-value options, mutually exclusive groups, and generated shell completion scripts ↩︎
-
Missing raw mode, line terminators, streaming ↩︎
-
No OS signals, no users/groups, no resource limits, no forking ↩︎
-
No access to permissions, potentially other missing features ↩︎
-
Module not sufficiently tested to be confidently complete ↩︎
-
Lacks proxy support ↩︎
-
Immature implementation lacking many features. Not sufficient tested ↩︎
-
No sufficient tested. Supports only a limited number of features. Some heuristics likely broken ↩︎
-
No mTLS support, no ALPN, no cipher suite selection, no OCSP ↩︎
-
Subset of YAML 1.2 ↩︎
-
Limited interface for manipulating ZIP files ↩︎
-
Very patchy hand-written code, lacking almost all important ASN1 features ↩︎
-
Extensions not fully featured yet, and some inline parsing bugs present ↩︎
-
Bare-bones wrapper for WebView2 on windows, but no support for other platforms ↩︎
-
Missing most things that make wrapping a webview useful ↩︎
-
Missing must image manipulation features ↩︎