Andromeda - Runtime JavaScript/TypeScript được triển khai bằng Rust
(tryandromeda.dev)- Dựa trên Nova, một engine JavaScript/WebAssembly viết bằng Rust, và Oxc, trình biên dịch JS, mang lại tốc độ thực thi nhanh và độ an toàn cao
- Hỗ trợ TypeScript zero-config, Canvas API 2D tăng tốc bằng GPU, Web Crypto, SQLite, Web Storage cùng bộ Web API toàn diện
- Tích hợp toolchain thống nhất cho nhà phát triển (REPL, formatter, bundler, trình biên dịch thành tệp thực thi đơn) và LSP tích hợp sẵn để sử dụng trong nhiều trình soạn thảo
- So với Node.js và Deno hiện có, mức sử dụng bộ nhớ thấp hơn, đồng thời vượt trội ở TypeScript, xử lý đồ họa và biên dịch thành tệp đơn
- Runtime đa dụng hỗ trợ từ ứng dụng web thế hệ mới, trực quan hóa dữ liệu, game, script hiệu năng cao, dịch vụ web đến tính toán khoa học
Thông số kỹ thuật
- Kiến trúc: runtime dựa trên Rust, engine Nova, mô hình đa luồng, cấu trúc dữ liệu zero-copy
- Chuẩn web: WHATWG Fetch API, W3C Canvas 2D, Web Crypto, TextEncoder/Decoder, tuân thủ WinterTC
- Hiệu năng: thời gian khởi động dưới 10ms, tăng tốc phần cứng, quản lý bộ nhớ và phân giải mô-đun được tối ưu hóa
- Bảo mật: thực thi trong sandbox, API dựa trên quyền, độ an toàn của Rust, cung cấp mã hóa an toàn
- Hỗ trợ nền tảng: Linux, macOS(Intel/Apple Silicon), Windows, Docker, biên dịch chéo
So sánh với Node.js và Deno
- Mức sử dụng bộ nhớ: Andromeda ~12MB, Node.js ~40MB, Deno ~25MB
- TypeScript: Andromeda tích hợp sẵn theo mặc định, Node.js cần cấu hình bổ sung, Deno hỗ trợ native
- Đồ họa: Andromeda hỗ trợ Canvas tăng tốc bằng GPU, Node.js không hỗ trợ, Deno hỗ trợ một phần
- Biên dịch thành tệp đơn: Andromeda native, Node.js dùng bên thứ ba, Deno tích hợp sẵn
- Mô hình bảo mật: Andromeda an toàn bộ nhớ + dựa trên quyền, Node.js chủ yếu dựa vào kiểm tra khi chạy
8 bình luận
Mấy thứ như nodejs khi muốn bind vào ứng dụng khác thì khá là phiền phức, giá mà làm được dễ hơn một chút thì tốt.
Dạo này tin liên quan đến Rust xuất hiện khá nhiều nhỉ..
Ngay cả Bun hiện vẫn còn xa mới đạt mức tương thích 100% với API của nodejs, nên cái này chắc sẽ mất bao lâu nhỉ
Có vẻ điểm then chốt để những dự án như thế này thành công là chúng sẽ tích hợp với hệ sinh thái vô số thư viện npm như thế nào... phát triển theo cùng đặc tả API như nodejs, nhưng chỉ cần thay runtime... nếu có thể tương thích đồng thời giảm tối đa chi phí thay đổi với các codebase hiện có đang được phát triển/vận hành... nhưng ngay từ đầu thì nodejs cũng đâu có dùng nhiều bộ nhớ đến thế đâu haha
Đây là một runtime JavaScript nhưng lại không dùng V8 sao? Wow.
https://vi.news.hada.io/topic?id=17845
Bài viết trên có giải thích về engine đó đấy!
Sao lại không nhắc gì đến Bun nhỉ...
,Đúng vậy, tôi cũng đã đọc với đúng suy nghĩ đó trước tiên.