1 điểm bởi GN⁺ 2023-12-19 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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
  • wasm3 vượt qua WebAssembly spec testsuite và 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 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ì

Môi trường có thể chạy và yêu cầu

  • wasm3 vượ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 đó wasm3 chạy wasm3

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, WebAssembly cũ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

1 bình luận

 
GN⁺ 2023-12-19
Ý kiến trên Hacker News
  • Tôi là OP, sẵn sàng trả lời nếu có câu hỏi
    • Không liên quan đến dự án Wasm, nhưng mong bạn cùng bạn bè và gia đình được an toàn. Vinh quang cho Ukraine, quân chiếm đóng hãy cút đi
    • Với tư cách là một thành viên NAFO từ những ngày đầu, xin gửi lời ủng hộ
      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
    • Hiện giờ bạn có an toàn không?
    • Bạn có thời gian nghỉ ngơi hay làm gì đó vui không, hay cứ liên tục căng thẳng?
  • Bài viết trên Twitter của Wasm3 có thêm nhiều bối cảnh: https://x.com/wasm3_engine/status/1736712528883769670?s=20
  • Thành thật mà nói, tin này khiến tôi buồn. Wasm3 là một trình thông dịch Wasm xuất sắc, dẫn đầu về hiệu năng; chậm hơn native khoảng 3–5 lần nhưng nhanh hơn trình thông dịch Wasm thông thường khoảng 3 lần
    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
    • Đồng ý. Đây là một trong những trình thông dịch WASM tốt nhất, và tôi nghĩ còn tốt hơn một số runtime có thể tìm thấy đây đó
      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
  • Lời giải thích là như sau: vì Nga xâm lược và nhà của tác giả đã bị phá hủy, Wasm3 sẽ bước vào giai đoạn bảo trì tối thiểu; không thể tiếp tục phát triển tính năng mới, nhưng các Pull Request gửi đến để giữ dự án sống sẽ được tích cực xem xét và merge
    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 đỡ
    • Thật khủng khiếp. Slava Ukraini
    • Có vẻ căn nhà đó cần một mái nhà mới càng sớm càng tốt để che mưa và tuyết
    • Đến giờ tôi thật sự đã hy vọng có ai đó bên trong nước Nga loại bỏ Putin. Tôi tin là có khá nhiều người không hẳn ưa ông ta
      EU cần bỏ ra nhiều tiền mặt hơn để giúp Ukraine