Wasmer 2.0, cov cuab yeej siv rau kev tsim WebAssembly-based applications, muaj

Lub phiaj xwm Wasmer tau tshaj tawm nws qhov kev tshaj tawm thib ob, tsim lub sijhawm ua haujlwm rau kev ua tiav WebAssembly modules uas tuaj yeem siv los tsim cov ntawv thov thoob ntiaj teb uas tuaj yeem khiav ntawm cov kev khiav hauj lwm sib txawv, nrog rau khiav cov cai tsis ntseeg hauv kev sib cais. Txoj haujlwm code yog sau hauv Rust thiab muab faib raws li MIT daim ntawv tso cai.

Portability yog ua kom ntseeg tau los ntawm kev sau cov ntawv thov code rau hauv qib qis WebAssembly intermediate code, uas tuaj yeem khiav ntawm ib qho OS lossis muab tso rau hauv cov kev pab cuam hauv lwm yam lus programming. Cov kev pab cuam yog lub teeb yuag uas khiav WebAssembly pseudocode. Cov thawv no tsis khi rau lub operating system thiab tuaj yeem suav nrog cov lej sau ua ntej ua ib hom lus programming. Cov cuab yeej Emscripten tuaj yeem siv los sau rau WebAssembly. Txhawm rau txhais WebAssembly rau hauv tshuab code ntawm lub platform tam sim no, nws txhawb kev sib txuas ntawm ntau qhov sib sau ua ke backends (Singlepass, Cranelift, LLVM) thiab cov cav (siv JIT lossis tshuab code tiam).

Kev tswj hwm kev nkag mus thiab kev cuam tshuam nrog lub kaw lus yog muab los ntawm WASI (WebAssembly System Interface) API, uas muab kev pabcuam cuam tshuam rau kev ua haujlwm nrog cov ntaub ntawv, qhov (socket) thiab lwm yam haujlwm muab los ntawm lub operating system. Cov ntawv thov raug cais tawm los ntawm cov kab ke tseem ceeb hauv ib puag ncig sandbox thiab tsuas yog nkag mus rau qhov kev tshaj tawm ua haujlwm (kev ruaj ntseg mechanism raws li kev tswj hwm kev muaj peev xwm - rau kev nqis tes ua nrog txhua qhov peev txheej (cov ntaub ntawv, cov ntawv teev npe, qhov (sockets, hu xov tooj, thiab lwm yam), thiab lwm yam), daim ntawv thov yuav tsum tau muab lub zog tsim nyog).

Txhawm rau tso lub thawv WebAssembly, tsuas yog nruab Wasmer hauv lub sijhawm ua haujlwm, uas tuaj yeem tsis muaj kev cuam tshuam sab nraud ("curl https://get.wasmer.io -sSfL | sh"), thiab khiav cov ntaub ntawv tsim nyog ("wasmer test.wasm" ). Cov kev pab cuam tau muab faib rau hauv daim ntawv ntawm WebAssembly modules tsis tu ncua, uas tuaj yeem tswj tau siv WAPM pob tus thawj tswj hwm. Wasmer kuj muaj xws li lub tsev qiv ntawv uas tuaj yeem siv los kos WebAssembly code rau hauv Rust, C / C ++, C #, D, Python, JavaScript, Go, PHP, Ruby, Elixir, thiab Java program.

Lub platform tso cai rau koj kom ua tiav daim ntawv thov kev ua tau zoo nyob ze rau cov rooj sib txoos ib txwm muaj. Siv lub Native Object Cav rau WebAssembly module, koj tuaj yeem tsim lub tshuab code ("wasmer compile -native" los tsim cov ntaub ntawv precompiled .so, .dylib thiab .dll object files), uas yuav tsum tau siv sijhawm tsawg heev los khiav, tab sis khaws tag nrho cov sandbox cais. nta. Nws muaj peev xwm muab cov kev pab cuam precompiled nrog built-in Wasmer. Cov Rust API thiab Wasm-C-API tau muab rau tsim cov add-ons thiab txuas ntxiv.

Ib qho kev hloov pauv tseem ceeb hauv tus lej version ntawm Wasmer yog txuam nrog kev qhia txog kev hloov pauv tsis sib xws rau API sab hauv, uas, raws li cov neeg tsim khoom, yuav tsis cuam tshuam rau 99% ntawm cov neeg siv platform. Ntawm cov kev hloov pauv uas ua rau kev sib raug zoo, kuj tseem muaj kev hloov pauv ntawm cov qauv ntawm Wasm serialized (modules serialized hauv Wasmer 1.0 yuav tsis tuaj yeem siv hauv Wasmer 2.0). Lwm yam kev hloov pauv:

  • Kev them nyiaj yug rau SIMD (Kev Qhia Ib Leeg, Ntau Cov Ntaub Ntawv) cov lus qhia, tso cai rau kev sib piv ntawm cov ntaub ntawv ua haujlwm. Cov cheeb tsam uas siv SIMD tuaj yeem txhim kho kev ua haujlwm tau zoo suav nrog kev kawm tshuab, video encoding thiab decoding, kev ua duab, simulation ntawm lub cev, thiab kev siv duab kos duab.
  • Kev txhawb nqa rau hom siv, tso cai rau Wasm modules nkag mus rau cov ntaub ntawv hauv lwm cov modules lossis hauv ib puag ncig.
  • Cov kev ua tau zoo tseem ceeb tau ua tiav. Qhov ceev ntawm LLVM runtime nrog floating point tus lej tau nce los ntawm kwv yees li 50%. Kev hu xov tooj muaj nuj nqi tau nrawm nrawm los ntawm kev txo cov xwm txheej xav tau nkag mus rau lub ntsiav. Cranelift code generator kev ua tau zoo tau nce 40%. Txo cov ntaub ntawv deserialization lub sij hawm.
    Wasmer 2.0, cov cuab yeej siv rau kev tsim WebAssembly-based applications, muaj
    Wasmer 2.0, cov cuab yeej siv rau kev tsim WebAssembly-based applications, muaj
  • Txhawm rau kom pom tseeb qhov tseeb, cov npe ntawm cov cav tau hloov pauv: JIT β†’ Universal, Native β†’ Dylib (Dynamic Library), Object File β†’ StaticLib (Static Library).

Tau qhov twg los: opennet.ru

Ntxiv ib saib