След две години развитие беше обявено пускането на първата версия значим проект Wasmer, който разработва време за изпълнение на модулите WebAssembly.
Области на използване на Wasmer включват създаването на универсални приложения които могат да бъдат изпълнени на различни операционни системи, както и организацията на изолираното изпълнение на ненадежден код. Поддържа се включването на изграждане на сървърни приложения, например беше демонстрирано пускането на сървър Nginx, компилиран в WebAssembly.
Относно Wasmer
Преносимост се постига чрез компилиране на кода на приложението в междинния софтуер WebAssembly на ниско ниво, който може да работи на всяка операционна система или да бъде интегриран в програми на други програмни езици.
Програмите те са леки контейнери, които изпълняват псевдокода WebAssembly. Тези контейнери не са свързани с операционната система и могат да съдържат приложения, първоначално написани на който и да е език за програмиране.
Инструментариумът Emscripten може да се използва за компилиране в WebAssemblyВ допълнение към превеждането на WebAssembly към машинния код на текущата платформа, са свързани няколко рамки, като LLVM и генератора на код Cranelift.
От друга страна, контролът на достъпа и взаимодействието със системата се осигуряват чрез API на WASI (WebAssembly System Interface), който осигурява програмни интерфейси за работа с файлове, сокети и други функции, предоставени от операционната система.
Освен, че приложенията са изолирани от хост системата в среда на пясъчник и те имат достъп само до декларираната функционалност (механизъм за сигурност, основан на възможности за управление; за действия с всеки от ресурсите (файлове, директории, сокети, системни повиквания и т.н.), приложението трябва да получи съответните правомощия).
Програмите се разпространяват под формата на обикновени модули WebAssembly, които могат да се управляват чрез мениджъра на пакети WAPM.
Wasmer също се предлага като библиотека, която може да се използва с различни езици програмиране. Поддържа се вграждане на WebAssembly код в програми Rust, C / C ++, C #, D, Python, JavaScript, Go, PHP, Ruby, Elixir и Java.
Относно характеристики на Wasmer версия 1.0 открояват се следните:
- Висока производителност на работещи приложения, близо до изпълнението на родните сборки и висока скорост на компилация.
- Разширяема архитектура с възможност за свързване на различни компилационни бекендове (Singlepass, Cranelift, LLVM) и двигатели (използвайки JIT или генериращ машинен код).
Native Object Engine, който позволява да се генерира машинен код за дадена система за модул WebAssembly ("компилация от родния модул", за да се генерират предварително компилирани обектни файлове .so, .dylib и .dll). - Предкомпилираният код изисква минимално време за изпълнение, но всички възможности за изолиране на пясъчника са запазени.
- Режим без глава за доставяне на предварително компилирани програми с вграден Wasmer.
Подкрепа за кръстосана компилация, например, за генериране на машинен код за архитектурата Aarch64 в система x86_64. - Прост API за създаване на плъгини и плъгини, без да е необходимо да се усвояват разширени WebAssembly концепции.
- Поддръжка за WASM-C-API.
- Инструменти за отстраняване на грешки и обработка на грешки.
Накрая Ако се интересувате да научите повече за Wasmer, трябва да знаете, че дКодът на проекта е написан на Rust, има го la MIT лиценз и можете да проверите подробностите за него на официалния му уебсайт в следваща връзка.
Инсталирайте времето за изпълнение на Wasmer
От друга страна, за тези, които се интересуват от възможността да стартират контейнера WebAssembly, трябва само да инсталирате изпълнението на Wasmer във вашата система, което идва без външни зависимости.
Важно е да се спомене това Wasmer може да работи на всяка платформа macOS, Linux и Windows, единственото изискване е времето за изпълнение да бъде инсталирано на вашата система.
За да направите това, просто изпълнете следната команда в терминал:
curl https://get.wasmer.io -sSfL | ш
И след това те трябва да изпълнят необходимия файл:
тест на шайби.спазъм
Ако трябва да знаете повече за това как работи Wasmer или искате да знаете неговия изходен код, можете да се консултирате с всичко това В следващия линк.