Wasmer, et sæt værktøjer til WebAssembly-applikationer

Efter to års udvikling frigivelsen af ​​den første version blev annonceret væsentlig for projektet Wasmer, som udvikler en runtime til at udføre WebAssembly-moduler.

Wasmers anvendelsesområder omfatte oprettelse af universelle apps der kan udføres på forskellige operativsystemer samt organiseringen af ​​den isolerede udførelse af upålidelig kode. Inkludering af bygningsserverapplikationer understøttes, for eksempel blev lancering af en Nginx-server bygget på WebAssembly demonstreret.

Om Wasmer

bærbarhed det opnås ved at kompilere applikationskoden i middleware WebAssembly på lavt niveau, der kan køre på ethvert operativsystem eller indlejres i programmer på andre programmeringssprog.

Programmerne de er letvægtsbeholdere, der kører WebAssembly-pseudokoden. Disse beholdere er ikke bundet til operativsystemet og kan omfatte applikationer, der oprindeligt er skrevet i et hvilket som helst programmeringssprog.

Værktøjssættet Emscripten kan bruges til at kompilere til WebAssemblyUdover at oversætte WebAssembly til aktuel platforms maskinkode, er forskellige frameworks tilsluttet, såsom LLVM og Cranelift-kodegeneratoren.

På den anden side leveres adgangskontrol og interaktion med systemet af WASI API (WebAssembly System Interface), som giver programmeringsgrænseflader til at arbejde med filer, sockets og andre funktioner leveret af operativsystemet.

udover det applikationer er isoleret fra hovedsystemet i et sandkassemiljø og de har kun adgang til den erklærede funktionalitet (sikkerhedsmekanisme baseret på administrationsmuligheder; for handlinger med hver af ressourcerne (filer, mapper, sockets, systemkald osv.), skal applikationen have de tilsvarende beføjelser).

Programmerne distribueres i form af almindelige WebAssembly-moduler, som kan styres ved hjælp af WAPM-pakkehåndteringen.

Wasmer også er tilgængelig som et bibliotek, der kan bruges med forskellige sprog programmering. Indlejring af WebAssembly-kode i programmerne Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir og Java understøttes.

Som Wasmer version 1.0 funktioner følgende skiller sig ud:

  • Høj ydeevne af kørende applikationer, tæt på at køre native assemblies og høj byggehastighed.
  • Udvidelig arkitektur med mulighed for at forbinde forskellige build-backends (Singlepass, Cranelift, LLVM) og motorer (ved hjælp af JIT eller generering af maskinkode).
    Native Object Engine, som gør det muligt at generere maskinkode for et givet system til et WebAssembly-modul ("wasmer compilation – native" for at generere prækompilerede .so-, .dylib- og .dll-objektfiler).
  • Forkompileret kode kræver minimal udførelsestid at køre, men alle sandboxing-funktioner er bevaret.
  • Hovedløs tilstand til at levere prækompilerede programmer med indbygget Wasmer.
    Krydskompileringsunderstøttelse, for eksempel til at generere maskinkode til Aarch64-arkitekturen på et x86_64-system.
  • En simpel API til oprettelse af plugins og plugins uden behov for at lære avancerede WebAssembly-koncepter.
  • Understøttelse af WASM-C-API.
  • Værktøjer til debugging og fejlhåndtering.

Endelig Hvis du er interesseret i at lære mere om Wasmer, du burde vide, at ehan projektkode er skrevet i Rust, har la MIT-licens, og du kan tjekke dens detaljer på dens officielle hjemmeside på følgende link.

Installer Wasmer-runtime

På den anden side behøver du kun for dem, der er interesseret i at kunne køre WebAssembly-beholderen, at installere Wasmer-runtime på dit system, der kommer uden eksterne afhængigheder.

Det er vigtigt at nævne det Wasmer kan køres på enhver platform macOS, Linux og Windows, er det eneste krav, at dets runtime installeres på dit system.

For at gøre dette skal du bare køre følgende kommando i en terminal:

krølle https://get.wasmer.io -sSfL | sh

Og derefter skal de udføre den krævede fil:

wasmer test.wasm

Hvis du har brug for at vide mere om, hvordan Wasmer fungerer eller ønsker at kende kildekoden, kan du konsultere alt det I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.