Wasmer 2.0, kitapom-pitaovana hanamboarana rindranasa mifototra amin'ny WebAssembly, dia misy

Namoaka ny famotsorana lehibe faharoa ny tetikasa Wasmer, namolavola fotoana fampandehanana ny maody WebAssembly izay azo ampiasaina hamoronana rindranasa manerantany izay afaka mandeha amin'ny rafitra fiasana samihafa, ary koa amin'ny fampandehanana kaody tsy azo itokisana amin'ny fitokanana. Ny kaody tetikasa dia nosoratana tamin'ny Rust ary zaraina amin'ny alΓ lan'ny fahazoan-dΓ lana MIT.

Ny fahafaha-mitondra dia tratra amin'ny alΓ lan'ny fanangonana ny kaody fampiharana ho amin'ny kaody intermediate WebAssembly, izay afaka mandeha amin'ny OS rehetra na ampidirina amin'ny programa amin'ny fiteny fandaharana hafa. Ireo programa dia kaontenera maivana izay mihazakazaka pseudocode WebAssembly. Ireo kaontenera ireo dia tsy mifamatotra amin'ny rafitra miasa ary mety ahitana kaody nosoratana tany am-boalohany tamin'ny fiteny fandaharana rehetra. Ny kitapo fitaovana Emscripten dia azo ampiasaina hanangonana ao amin'ny WebAssembly. Mba handikana ny WebAssembly amin'ny kaody milina amin'ny sehatra ankehitriny, dia manohana ny fampifandraisana ireo backend fanangonana isan-karazany (Singlepass, Cranelift, LLVM) sy ny motera (mampiasa JIT na famokarana kaody milina).

Ny fanaraha-maso ny fidirana sy ny fifandraisana amin'ny rafitra dia omena amin'ny alΓ lan'ny WASI (WebAssembly System Interface) API, izay manome interface tsara ho an'ny programa miasa amin'ny rakitra, ny socket ary ny fiasa hafa omen'ny rafitra miasa. Ny fampiharana dia mitoka-monina amin'ny rafitra lehibe ao amin'ny tontolon'ny sandbox ary tsy mahazo miditra afa-tsy amin'ny fiasa voalaza (mekanisma fiarovana mifototra amin'ny fitantanana fahaiza-manao - ho an'ny hetsika miaraka amin'ny loharano tsirairay (rakitra, lahatahiry, socket, antso an-tariby, sns.), ny ny fampiharana dia tsy maintsy omena ny fahefana sahaza).

Mba hanombohana container WebAssembly, apetraho fotsiny ny Wasmer ao amin'ny rafitra runtime, izay tsy misy fiankinan-doha ivelany ("curl https://get.wasmer.io -sSfL | sh"), ary tanteraho ny rakitra ilaina ("wasmer test.wasm" ). Ny programa dia zaraina amin'ny endrika modely WebAssembly mahazatra, izay azo fehezina amin'ny alΓ lan'ny mpitantana fonosana WAPM. Azo alaina ho tranomboky ihany koa i Wasmer izay azo ampiasaina hampidirana kaody WebAssembly amin'ny programa Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir ary Java.

Ny sehatra dia ahafahanao manatratra ny fahombiazan'ny fampiharana fampiharana akaikin'ny fivoriambe teratany. Amin'ny fampiasana ny Native Object Engine ho an'ny mody WebAssembly, dia afaka mamokatra kaody milina ianao ("wasmer compile -native" mba hamoronana rakitra .so, .dylib sy .dll .dll), izay mitaky fotoana kely indrindra handehanana, fa mitazona ny fitokanana sandbox rehetra. Toetoetra. Azo atao ny manome programa efa voaomana miaraka amin'ny Wasmer naorina. Ny Rust API sy Wasm-C-API dia atolotra amin'ny famoronana add-ons sy fanitarana.

Ny fiovana lehibe amin'ny nomeraon'ny Wasmer dia mifandray amin'ny fampidirana fanovana tsy mifanaraka amin'ny API anatiny, izay, araka ny filazan'ny mpamorona, dia tsy hisy fiantraikany amin'ny 99% amin'ny mpampiasa sehatra. Ao anatin'ireo fanovana izay manapaka ny fifanarahana, dia misy ihany koa ny fanovana ny endriky ny maody Wasm serialized (tsy azo ampiasaina ao amin'ny Wasmer 1.0 ny maody serialised amin'ny Wasmer 2.0). Fanovana hafa:

  • Fanohanana ny toromarika SIMD (Instruction Single, Multiple Data), mamela ny fampifanarahana ny fiasan'ny angona. Ny sehatra ahafahan'ny fampiasana ny SIMD manatsara ny fampandehanana dia ahitana ny fianarana milina, ny fanodinana horonan-tsary sy ny fanodinana, ny fanodinana sary, ny simulation ny fizotran'ny vatana, ary ny fanodinkodinana sary.
  • Fanohanana karazana fanondroana, ahafahan'ny maody Wasm mahazo fampahalalana amin'ny maody hafa na amin'ny tontolo iainana.
  • Nisy ny fanatsarana ny fampisehoana lehibe. Nitombo 50% eo ho eo ny hafainganam-pandehan'ny LLVM runtime miaraka amin'ny isa mitsingevana. Ny fiantsoana fampiasa dia nanafaingana be tamin'ny fampihenana ny toe-javatra mitaky fidirana amin'ny kernel. Nitombo 40% ny fahombiazan'ny mpamorona kaody Cranelift. Ahena ny fotoana deserialization angona.
    Wasmer 2.0, kitapom-pitaovana hanamboarana rindranasa mifototra amin'ny WebAssembly, dia misy
    Wasmer 2.0, kitapom-pitaovana hanamboarana rindranasa mifototra amin'ny WebAssembly, dia misy
  • Mba hanehoana mazava kokoa ny maha-zava-dehibe azy, dia novana ny anaran'ireo motera: JIT β†’ Universal, Native β†’ Dylib (Dynamic Library), Object File β†’ StaticLib (Static Library).

Source: opennet.ru

Add a comment