Welcome to the Andromeda documentation. Andromeda is a modern, fast, and secure JavaScript and TypeScript runtime built from the ground up in Rust and powered by the Nova Engine and Oxc.
Note: Andromeda is in active development (current version
0.1.10). While functional, it is not yet recommended for production use.
Documentation Structure
Getting Started
- Installation Guide - How to install and set up Andromeda
- Quick Start - Your first Andromeda program
- CLI Reference - Complete command-line interface documentation
- Configuration -
andromeda.json/.toml/.yamlreference
API Documentation
- File System API - File and directory I/O with sync and async variants
- Canvas API - GPU-accelerated 2D graphics and image export
- Window API - Native OS windows via winit (
windowfeature) - Crypto API -
crypto.subtle,randomUUID, secure random - Console API - Console output and formatting
- Performance API - High-resolution timing, marks and measures
- Process API -
Andromeda.args,env,exit, signals, subprocessCommand - Time API -
setTimeout,setInterval,Andromeda.sleep - Fetch API -
fetch,Request,Response,Headers - HTTP Server -
Andromeda.serve()for HTTP services - URL API -
URLandURLSearchParams - Web APIs -
EventTarget,TextEncoder/TextDecoder,navigator,structuredClone,atob/btoa - SQLite API - Built-in synchronous
DatabaseSync/Database - Web Storage API -
localStorageandsessionStorage(SQLite-backed) - Cache Storage API - HTTP response caching
- File API -
Blob,File, and metadata - Streams API -
ReadableStream,WritableStream,TransformStream - Cron API -
Andromeda.cronwith cron-string and JSON schedules - Web Locks API -
navigator.locksfor shared-resource coordination - Import Maps - Bare specifiers and module resolution
Development
- Contributing Guide - How to contribute to Andromeda
- Building from Source - Compiling Andromeda yourself
- Testing Guide - Running and writing tests
- Language Server - LSP integration for editors
Developer Tools
- REPL - Interactive development environment
- Formatter - Code formatting
- Bundler - Single-file bundling
- Linter - Code analysis and linting
- Type Checker - TypeScript type checking
- Compiler - Single-file executable creation
- Tasks - Run scripts defined in
andromeda.json
Reference
- Examples Index - Code examples and practical demonstrations
- FAQ - Frequently asked questions
- Troubleshooting - Common issues and solutions
Standards Compliance
Andromeda aims to be WinterTC compliant for broad interoperability with the wider JavaScript runtime ecosystem.
APIs follow established standards including:
- WHATWG - URL, Encoding, Fetch, Streams, DOM events
- W3C - Canvas 2D, Performance, Web Crypto, Web Locks, Cache Storage
- ECMAScript - Modern JavaScript with zero-config TypeScript
Key Features
- Zero-config TypeScript - Run
.tsfiles directly, no transpilation step - Rust foundation - Memory-safe, native performance
- Nova engine - Modern JS engine from trynova.dev
- GPU-accelerated Canvas - WGPU-backed
OffscreenCanvaswith PNG/JPEG export - Web Crypto API -
SubtleCrypto,randomUUID,getRandomValues - SQLite - Bundled
DatabaseSyncfor synchronous database access - File system - Sync and async APIs for text and binary files
- Web Storage -
localStorageandsessionStoragewith persistence - Fetch and networking -
fetch,Request,Response,Headers, TLS - Streams -
ReadableStream,WritableStream,TransformStream - Import Maps - Bare specifiers and CDN resolution
- HTTP server -
Andromeda.serve()for building web services - Cron scheduling -
Andromeda.cron()with cron-string and JSON schedules - Full toolchain -
run,repl,fmt,lint,check,bundle,compile,task,upgrade - LSP - Built-in language server with diagnostics
- Self-updater -
andromeda upgrade - Shell completions - bash, zsh, fish, PowerShell
- Optional native windowing -
Andromeda.Window(winit) behind thewindowfeature
Architecture
Andromeda is composed of three workspace crates:
| Crate | Description |
|---|---|
andromeda |
CLI and developer tools |
andromeda-core |
Runtime engine and JavaScript execution |
andromeda-runtime |
Runtime extensions and Web API implementations |
The runtime is modular — extensions can be enabled or disabled at build time:
- Always on - Console, Time, Cron, Process, Command, URL, Web, Web Locks, File, BroadcastChannel, Fetch, Net, Streams, TLS, FFI, WebIDL, File system
- Feature-gated - Canvas (
canvas), HTTP serve (serve), Crypto (crypto), Storage / SQLite / Cache Storage (storage), Native windowing (window), Virtual FS (virtualfs)
Andromeda Satellites
Satellites are minimal, purpose-built executables designed for containerized environments and microservice architectures:
- andromeda-run - Execute JavaScript/TypeScript in production containers
- andromeda-compile - Compile JS/TS to executables
- andromeda-fmt - Format code
- andromeda-lint - Lint code
- andromeda-bundle - Bundle and minify
Getting Help
License
Andromeda is licensed under the Mozilla Public License Version 2.0.