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

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 (window feature)
  • 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, subprocess Command
  • Time API - setTimeout, setInterval, Andromeda.sleep
  • Fetch API - fetch, Request, Response, Headers
  • HTTP Server - Andromeda.serve() for HTTP services
  • URL API - URL and URLSearchParams
  • Web APIs - EventTarget, TextEncoder/TextDecoder, navigator, structuredClone, atob / btoa
  • SQLite API - Built-in synchronous DatabaseSync / Database
  • Web Storage API - localStorage and sessionStorage (SQLite-backed)
  • Cache Storage API - HTTP response caching
  • File API - Blob, File, and metadata
  • Streams API - ReadableStream, WritableStream, TransformStream
  • Cron API - Andromeda.cron with cron-string and JSON schedules
  • Web Locks API - navigator.locks for shared-resource coordination
  • Import Maps - Bare specifiers and module resolution

Development

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

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 .ts files directly, no transpilation step
  • Rust foundation - Memory-safe, native performance
  • Nova engine - Modern JS engine from trynova.dev
  • GPU-accelerated Canvas - WGPU-backed OffscreenCanvas with PNG/JPEG export
  • Web Crypto API - SubtleCrypto, randomUUID, getRandomValues
  • SQLite - Bundled DatabaseSync for synchronous database access
  • File system - Sync and async APIs for text and binary files
  • Web Storage - localStorage and sessionStorage with 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 the window feature

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.

Found an issue with this page?Edit on GitHub
Last updated: