Wasm3 bước vào giai đoạn bảo trì tối thiểu
(github.com/wasm3)- Wasm3 là một trình thông dịch WebAssembly nhanh và hướng tới runtime WASM đa dụng, nhưng đã dừng phát triển tính năng mới và bước vào giai đoạn bảo trì tối thiểu
- Nhà phát triển cho biết sau khi nhà của mình bị phá hủy do cuộc xâm lược của Nga, họ không thể tiếp tục phát triển tính năng mới; dự án vẫn sẽ được duy trì và các Pull Request gửi đến sẽ được xem xét, hợp nhất
wasm3vượt qua WebAssembly spec testsuite và có thể chạy nhiều ứng dụngWASI; yêu cầu hệ thống hữu dụng tối thiểu là khoảng 64KB mã và khoảng 10KB RAM- Hỗ trợ nhiều kiến trúc như x86, x86_64, ARM, RISC-V, PowerPC, MIPS, Xtensa, ARC32, cùng nhiều môi trường như Linux, Windows, OS X, FreeBSD, Android, iOS, MCU, trình duyệt, thậm chí tự chạy chính nó
- Cách tiếp cận dùng trình thông dịch có lợi thế về kích thước file thực thi, mức dùng bộ nhớ, độ trễ khởi động, tính di động, bảo mật và độ khó tích hợp; trong các môi trường không thể tạo trang mã runtime như iOS hoặc chính WebAssembly, không thể dùng JIT
Thay đổi trạng thái bảo trì
- Wasm3 đã bước vào giai đoạn bảo trì tối thiểu
- Hiện khó có thể tiếp tục phát triển tính năng mới
- Dự án vẫn được duy trì, và các Pull Request gửi đến sẽ được tích cực xem xét, hợp nhất
- Đóng góp từ cộng đồng trở nên quan trọng hơn trước
- Nhà phát triển cho biết sau khi nhà của mình bị phá hủy do cuộc xâm lược của Nga, hiện họ không thể tiếp tục phát triển tính năng mới
Wasm3 cung cấp gì
- Wasm3 hướng tới vai trò là trình thông dịch WebAssembly nhanh và runtime WASM đa dụng
- Tuyên bố về hiệu năng dựa trên CoreMark 1.0 và benchmark độc lập
- Hiệu năng thực tế có thể thay đổi tùy môi trường
- Có thể dùng như thư viện trong nhiều ngôn ngữ và môi trường
Môi trường có thể chạy và yêu cầu
wasm3vượt qua WebAssembly spec testsuite- Có thể chạy nhiều ứng dụng
WASI - Yêu cầu hệ thống hữu dụng tối thiểu như sau
- Mã: khoảng 64KB
- RAM: khoảng 10KB
- Phạm vi kiến trúc được hỗ trợ rất rộng
x86,x86_64,ARM,RISC-V,PowerPC,MIPS,Xtensa,ARC32, v.v.
- Nền tảng và môi trường được hỗ trợ cũng đa dạng
- Linux, Windows, OS X, FreeBSD, Android, iOS
- Router/modem dựa trên OpenWrt, Yocto, Buildroot
- SBC như Raspberry Pi, Orange Pi
- MCU như Arduino, ESP8266, ESP32, Particle
- Có thể chạy trong trình duyệt bằng chính WebAssembly
- Cũng có thể self-hosting, trong đó
wasm3chạywasm3
Hỗ trợ tính năng WebAssembly
- Các tính năng đề xuất của WebAssembly được hỗ trợ
- Import/Export of Mutable Globals
- Non-trapping float-to-int conversions
- Sign-extension operators
- Multi-value
- Bulk memory operations được hỗ trợ một phần
- Custom page size
- Tính năng bổ sung
- Theo dõi thực thi có cấu trúc
- Hỗ trợ hệ thống Big-Endian
- Self-hosting Wasm và WASI
- Gas metering
- Giới hạn bộ nhớ tuyến tính: dưới 64KiB
- Cũng có các hạng mục vẫn đang triển khai hoặc chưa được hỗ trợ
- Đang triển khai: Multiple memories, Reference types
- Chưa hỗ trợ: Tail call optimization, Fixed-width SIMD, Exception handling, Stack Switching
Vì sao chọn trình thông dịch và WASM nhúng
- Tốc độ không phải lúc nào cũng là yêu cầu cốt lõi, và cách tiếp cận bằng trình thông dịch có lợi thế trong nhiều tình huống
- Có thể cải thiện kích thước file thực thi runtime, mức dùng bộ nhớ và độ trễ khởi động
- Dễ đạt được và duy trì tính di động cũng như bảo mật
- Một thư viện đơn giản như Wasm3 dễ biên dịch và tích hợp vào dự án hiện có, quá trình build hoàn tất trong vài giây
- Trên một số nền tảng, không thể dùng JIT
- Trên iOS và chính WebAssembly, không thể tạo trang mã thực thi tại runtime
- Lý do chạy WASM trên thiết bị nhúng cũng được nêu ra
- Wasm3 bắt đầu như một dự án nghiên cứu, và việc đánh giá engine trong nhiều môi trường khác nhau là một phần của nghiên cứu
- Trong bối cảnh
Lua,JS,Python,Lisp... đã chạy trên MCU,WebAssemblycũng có thể là một lựa chọn thay thế - WebAssembly cung cấp khả năng tách biệt toolchain và một môi trường hoàn toàn sandbox, được định nghĩa rõ ràng và có thể dự đoán
- Các trường hợp thực tế gồm edge computing, scripting, hệ thống plugin,
IoT rules, smart contract, v.v.
Tài liệu tham khảo và giấy phép
- Tài liệu chính
- Tài liệu liên quan
- Dự án được phát hành theo MIT License
1 bình luận
Ý kiến trên Hacker News
Vì đây là tài khoản ẩn danh nên có thể nói mà không thấy như đang khoe khoang: tôi đã làm những gì có thể, như quyên góp, báo cáo troll, phản bác thông tin sai lệch, gây áp lực lên các chính trị gia, v.v. Dù vậy, tôi vẫn cảm thấy mình còn mắc nợ người Ukraine
Mong bạn biết rằng bạn không đơn độc, và mong những người khác cũng làm những việc nhỏ như yêu cầu các chính trị gia hành động, quyên góp để giúp dân thường và các anh hùng nơi tiền tuyến, cũng như báo cáo thông tin sai lệch
Mong Volodymyr vẫn ổn trong lúc cố gắng duy trì dự án giữa cuộc xâm lược Ukraine của Nga, và mong chiến tranh sớm kết thúc
Hiệu năng rất tốt, kiến trúc và vẻ đẹp của mã nguồn cũng thực sự ấn tượng
Tweet được liên kết là từ tháng 9/2022, cho thấy video ngôi nhà bị phá hủy và kêu gọi quyên góp từ những người muốn giúp đỡ
EU cần bỏ ra nhiều tiền mặt hơn để giúp Ukraine