The Standard Library

The standard library is the core selling point for Eryx. 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 Partial[1] Access to luau language features (analysis, compiling)
@eryx/task Complete Concurrency helpers
@eryx/exception Complete Exception formatting and helpers
@eryx/_ffi Win32, Partial[2] 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/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
Logging Planned 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[4] Standard input and output interact
@eryx/argparse Partial[3] 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[5] OS interactions
@eryx/fs Mostly complete[6] Filesystem operations
@eryx/vfs Mostly complete[7] 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[8] HTTP client and server
@eryx/net Complete Basic TCP client and server
@eryx/websocket Partial[9] Websocket client and server
@eryx/mime Unusable[10] MIME format detection
@eryx/_socket Complete Low level BSD-style socket interface
@eryx/_ssl Mostly Complete[11] Low level SSL interface to be used with _socket
UUID Planned Creation and manipulation of UUIDs
RPC Planned RCON, JSON-RPC, XML-RPC
Email 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[12] 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[13] Zip file manipulation

Cryptography

Library Status Description
@eryx/crypto/aes Complete AES ciphers
@eryx/crypto/camellia Complete Camellia ciphers
@eryx/crypto/chacha20 Complete ChaCha20 ciphers
@eryx/crypto/des Complete 3DES ciphers
@eryx/crypto/rsa Complete RSA ciphers
@eryx/crypto/hash Complete Various hashing functions
@eryx/crypto/hmac Complete HMAC generation
@eryx/crypto/kdf Complete Key derivation functions
@eryx/crypto/pem Complete PEM/DER format support
@eryx/crypto/random Complete Secure random number and data generator
@eryx/crypto/asn1 Unusable[14] ASN1 format support
ECC Planned ECC ciphers (ECDSA/ECDH/EdDSA)
Argon2 Planned

Text file formats

Library Status Description
@eryx/markdown Mostly complete[15] Markdown parser
@eryx/template Complete Templating engine

Multimedia and interfaces

Library Status Description
@eryx/webview Win32, Unusable[16] Create and manipulate native WebView browsers
@eryx/webui Unusable[17] Wrapper for webview proving convenient JS<->Eryx communication
@eryx/image Partial[18] Support for various image formats
Audio Planned Support for various audio formats
  1. Not all AST nodes are fully exposed properly. Some bindings missing ↩︎

  2. Currently only supports Windows, and likely has GC-related problems ↩︎

  3. Still lacks some advanced CLI ergonomics, but now supports variadic positionals, multi-value options, mutually exclusive groups, and generated shell completion scripts ↩︎

  4. Missing raw mode, line terminators, streaming ↩︎

  5. No OS signals, no users/groups, no resource limits, no forking ↩︎

  6. No access to permissions, potentially other missing features ↩︎

  7. Module not sufficiently tested to be confidently complete ↩︎

  8. Lacks proxy support ↩︎

  9. Immature implementation lacking many features. Not sufficient tested ↩︎

  10. No sufficient tested. Supports only a limited number of features. Some heuristics likely broken ↩︎

  11. No mTLS support, no ALPN, no cipher suite selection, no OCSP ↩︎

  12. Subset of YAML 1.2 ↩︎

  13. Limited interface for manipulating ZIP files ↩︎

  14. Very patchy hand-written code, lacking almost all important ASN1 features ↩︎

  15. Extensions not fully featured yet, and some inline parsing bugs present ↩︎

  16. Bare-bones wrapper for WebView2 on windows, but no support for other platforms ↩︎

  17. Missing most things that make wrapping a webview useful ↩︎

  18. Missing must image manipulation features ↩︎