Wasmer, một bộ công cụ dành cho các ứng dụng WebAssembly

Sau hai năm phát triển việc phát hành phiên bản đầu tiên đã được công bố dự án quan trọng Wasmer, phát triển thời gian chạy để chạy các mô-đun WebAssembly.

Khu vực sử dụng máy giặt bao gồm việc tạo ra các ứng dụng phổ quát điều đó có thể được thực hiện trên các hệ điều hành khác nhau, cũng như tổ chức thực thi cô lập mã không đáng tin cậy. Việc bao gồm xây dựng ứng dụng máy chủ được hỗ trợ, chẳng hạn như việc phát hành máy chủ Nginx được biên dịch trên WebAssembly đã được trình diễn.

Về Wasmer

Tính di động nó đạt được bằng cách biên dịch mã ứng dụng trong phần mềm trung gian WebAssembly cấp thấp có thể chạy trên bất kỳ hệ điều hành nào hoặc được tích hợp vào các chương trình bằng các ngôn ngữ lập trình khác.

Các chương trình chúng là những vùng chứa nhẹ chạy mã giả WebAssembly. Các vùng chứa này không bị ràng buộc với hệ điều hành và có thể chứa các ứng dụng ban đầu được viết bằng bất kỳ ngôn ngữ lập trình nào.

Bộ công cụ Emscripten có thể được sử dụng để biên dịch trong WebAssemblyNgoài việc dịch WebAssembly sang mã máy của nền tảng hiện tại, một số khung công tác được kết nối, chẳng hạn như LLVM và trình tạo mã Cranelift.

Mặt khác, kiểm soát truy cập và tương tác với hệ thống được cung cấp thông qua API WASI (WebAssembly System Interface), cung cấp giao diện lập trình để làm việc với tệp, ổ cắm và các chức năng khác do hệ điều hành cung cấp.

bên cạnh đó các ứng dụng được cách ly khỏi hệ thống máy chủ trong môi trường hộp cát và chúng chỉ có quyền truy cập vào chức năng đã khai báo (cơ chế bảo mật dựa trên khả năng quản lý; đối với các hành động với từng tài nguyên (tệp, thư mục, ổ cắm, lệnh gọi hệ thống, v.v.), ứng dụng phải nhận được các quyền tương ứng).

Các chương trình được phân phối dưới dạng mô-đun WebAssembly thông thường, có thể được quản lý thông qua trình quản lý gói WAPM.

Wasmer cũng vậy có sẵn như một thư viện có thể được sử dụng với nhiều ngôn ngữ khác nhau lập trình. Nhúng mã WebAssembly trong các chương trình Rust, C / C ++, C #, D, Python, JavaScript, Go, PHP, Ruby, Elixir và Java được hỗ trợ.

Khi các tính năng của Wasmer phiên bản 1.0 nổi bật sau:

  • Hiệu suất cao của các ứng dụng đang chạy, gần với việc thực thi các hợp ngữ gốc và tốc độ biên dịch cao.
  • Kiến trúc mở rộng với khả năng kết nối các phụ trợ biên dịch khác nhau (Singlepass, Cranelift, LLVM) và động cơ (sử dụng JIT hoặc tạo mã máy).
    Native Object Engine, cho phép tạo mã máy cho một hệ thống nhất định cho mô-đun WebAssembly ("biên dịch wasmer-native" để tạo các tệp đối tượng .so, .dylib và .dll được biên dịch trước).
  • Mã biên dịch trước yêu cầu thời gian thực thi tối thiểu để chạy, nhưng tất cả các khả năng cách ly của hộp cát đều được bảo toàn.
  • Chế độ không đầu để cung cấp các chương trình được biên dịch trước với Wasmer tích hợp sẵn.
    Ví dụ: hỗ trợ biên dịch chéo để tạo mã máy cho kiến ​​trúc Aarch64 trên hệ thống x86_64.
  • Một API đơn giản để tạo plugin và plugin mà không cần phải học các khái niệm WebAssembly nâng cao.
  • Hỗ trợ cho WASM-C-API.
  • Công cụ gỡ lỗi và xử lý lỗi.

Cuối cùng Nếu bạn muốn tìm hiểu thêm về Wasmer, bạn nên biết rằng eMã dự án được viết bằng Rust, nó có la Giấy phép MIT và bạn có thể kiểm tra chi tiết của nó trên trang web chính thức của nó tại liên kết theo dõi.

Cài đặt thời gian chạy Wasmer

Mặt khác, đối với những người quan tâm đến việc có thể chạy vùng chứa WebAssembly, bạn chỉ cần cài đặt thời gian chạy Wasmer trên hệ thống của mình mà không cần phụ thuộc bên ngoài.

Điều quan trọng là phải đề cập đến Wasmer có thể chạy trên mọi nền tảng macOS, Linux và Windows, yêu cầu duy nhất là thời gian chạy của nó phải được cài đặt trên hệ thống của bạn.

Để thực hiện việc này, chỉ cần chạy lệnh sau trong một thiết bị đầu cuối:

curl https://get.wasmer.io -sSfL | NS

Và sau đó, họ phải thực thi tệp được yêu cầu:

thử nghiệm wasmer.wasm

Nếu bạn cần biết thêm về cách Wasmer hoạt động hoặc muốn biết mã nguồn của nó, bạn có thể tham khảo tất cả những điều đó Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.