Andromeda - Rust로 구현된 JavaScript/TypeScript 런타임
(tryandromeda.dev)- Rust로 된 JavaScript/WebAssembly 엔진인 Nova와 JS 컴파일러인 Oxc 기반으로 빠른 실행 속도와 안전성을 제공
- Zero-config TypeScript 지원, GPU 가속 2D Canvas API, Web Crypto, SQLite, Web Storage 등 포괄적 Web API를 지원
- 개발자를 위한 통합 툴체인(REPL, 포매터, 번들러, 단일 실행 파일 컴파일러)과 LSP를 내장하여 각종 에디터에서 이용 가능
- 기존 Node.js, Deno와 비교해 메모리 사용량이 더 적고, TypeScript와 그래픽 처리, 단일 파일 컴파일 등에서 우위를 가짐
- 차세대 웹 애플리케이션, 데이터 시각화, 게임, 고성능 스크립트, 웹 서비스, 과학 컴퓨팅까지 지원하는 범용 런타임
기술 사양
- 아키텍처: Rust 기반 런타임, Nova 엔진, 멀티스레드 모델, 제로 카피 데이터 구조
- 웹 표준: WHATWG Fetch API, W3C Canvas 2D, Web Crypto, TextEncoder/Decoder, WinterTC 준수
- 성능: 10ms 이하 시작시간, 하드웨어 가속, 최적화된 메모리 관리 및 모듈 해석
- 보안: 샌드박스 실행, 권한 기반 API, Rust 안전성, 안전한 암호화 제공
- 플랫폼 지원: Linux, macOS(Intel/Apple Silicon), Windows, Docker, 크로스 컴파일
Node.js, Deno와의 비교
- 메모리 사용량: Andromeda ~12MB, Node.js ~40MB, Deno ~25MB
- TypeScript: Andromeda는 기본 내장, Node.js는 추가 설정 필요, Deno는 네이티브 지원
- 그래픽: Andromeda는 GPU 가속 Canvas 지원, Node.js 미지원, Deno 부분 지원
- 단일 파일 컴파일: Andromeda는 네이티브, Node.js 서드파티, Deno 내장
- 보안 모델: Andromeda는 메모리 안전 + 권한 기반, Node.js는 런타임 체크 중심
수많은 npm 라이브러리 생태계와 어떻게 통합하느냐가 이런 프로젝트의 성공 포인트로 보입니다... nodejs와 동일한 API 스펙으로 개발하되, 런타임만 바꾸면되도록... 기존 개발/운영중인 코드베이스를 변경 비용을 최소화하고, 호환되게 한다면... 근데 애초에 nodejs도 메모리를 많이 쓰지를 않아서 ㅎㅎ