Wasmer 2.0, yon bwat zouti pou bati aplikasyon ki baze sou WebAssembly, disponib

Pwojè Wasmer te lage dezyèm pi gwo lage li a, devlope yon tan pou egzekite modil WebAssembly ki ka itilize pou kreye aplikasyon inivèsèl ki ka kouri sou diferan sistèm operasyon, epitou pou kouri kòd ki pa fè konfyans nan izolasyon. Kòd pwojè a ekri nan Rust epi li distribye anba lisans MIT.

Transparans reyalize lè w konpile kòd aplikasyon an nan kòd entèmedyè WebAssembly ki ba, ki ka kouri sou nenpòt OS oswa ki ka entegre nan pwogram nan lòt lang pwogramasyon. Pwogram yo se veso ki lejè ki kouri pseudocode WebAssembly. Kontenè sa yo pa mare nan sistèm operasyon an epi yo ka gen ladan kòd orijinal ekri nan nenpòt lang pwogramasyon. Yo ka itilize bwat zouti Emscripten pou konpile nan WebAssembly. Pou tradwi WebAssembly nan kòd machin nan platfòm aktyèl la, li sipòte koneksyon an nan divès kalite backend konpilasyon (Singlepass, Cranelift, LLVM) ak motè (itilize JIT oswa jenerasyon kòd machin).

Yo bay kontwòl aksè ak entèraksyon ak sistèm nan lè l sèvi avèk WASI (WebAssembly System Interface) API, ki bay koòdone pwogramasyon pou travay ak fichye, sipò ak lòt fonksyon sistèm opere a bay. Aplikasyon yo izole nan sistèm prensipal la nan yon anviwònman sandbox epi yo gen aksè sèlman nan fonksyonalite yo deklare (yon mekanis sekirite ki baze sou jesyon kapasite - pou aksyon ak chak nan resous yo (fichye, anyè, sipò, apèl sistèm, elatriye), la. aplikasyon an dwe bay pouvwa apwopriye yo).

Pou lanse yon veso WebAssembly, jis enstale Wasmer nan sistèm nan kouri, ki vini san depandans ekstèn ("curl https://get.wasmer.io -sSfL | sh"), epi kouri dosye ki nesesè ("wasmer test.wasm" ). Pwogram yo distribye nan fòm modil WebAssembly regilye, ki ka jere lè l sèvi avèk manadjè pake WAPM la. Wasmer disponib tou kòm yon bibliyotèk ki ka itilize pou entegre kòd WebAssembly nan pwogram Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir, ak Java.

Platfòm nan pèmèt ou reyalize pèfòmans egzekisyon aplikasyon tou pre asanble natif natal yo. Sèvi ak Native Object Engine pou modil WebAssembly la, ou ka jenere kòd machin ("wasmer compile -native" pou jenere fichye objè .so, .dylib ak .dll prekonpile), ki mande pou yon tan minimòm pou kouri, men kenbe tout izolasyon sandbox la. karakteristik. Li posib pou bay pwogram prekonpile ak Wasmer entegre. Yo ofri Rust API ak Wasm-C-API pou kreye adisyon ak ekstansyon.

Yon chanjman enpòtan nan nimewo vèsyon Wasmer asosye ak entwodiksyon de chanjman enkonpatib nan API entèn la, ki, dapre devlopè yo, pa pral afekte 99% nan itilizatè platfòm. Pami chanjman ki kraze konpatibilite yo, gen tou yon chanjman nan fòma modil Wasm serialize (modil serialize nan Wasmer 1.0 yo pa pral kapab itilize nan Wasmer 2.0). Lòt chanjman:

  • Sipò pou enstriksyon SIMD (Single Instruction, Multiple Data), ki pèmèt paralelizasyon operasyon done yo. Zòn kote itilizasyon SIMD ka siyifikativman amelyore pèfòmans yo enkli aprantisaj machin, kodaj videyo ak dekodaj, pwosesis imaj, simulation pwosesis fizik, ak manipilasyon grafik.
  • Sipò pou kalite referans, ki pèmèt modil Wasm jwenn enfòmasyon nan lòt modil oswa nan anviwònman ki kache.
  • Optimizasyon pèfòmans enpòtan yo te fè. Vitès la nan ègzekutabl LLVM ak nimewo k ap flote yo ogmante pa apeprè 50%. Apèl fonksyon yo te siyifikativman akselere nan diminye sitiyasyon ki mande aksè nan nwayo a. Pèfòmans dèlko kòd Cranelift te ogmante pa 40%. Redwi tan deserializasyon done.
    Wasmer 2.0, yon bwat zouti pou bati aplikasyon ki baze sou WebAssembly, disponib
    Wasmer 2.0, yon bwat zouti pou bati aplikasyon ki baze sou WebAssembly, disponib
  • Pou plis presizyon reflete sans lan, non motè yo te chanje: JIT → Inivèsèl, Natif Natal → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

Sous: opennet.ru

Add nouvo kòmantè