Wasmer 2.0, ohun elo irinṣẹ fun kikọ awọn ohun elo orisun WebAssembly, wa

Ise agbese Wasmer ti tu itusilẹ pataki keji rẹ silẹ, dagbasoke akoko asiko kan fun ṣiṣe awọn modulu WebAssembly ti o le ṣee lo lati ṣẹda awọn ohun elo gbogbo agbaye ti o le ṣiṣẹ lori awọn ọna ṣiṣe oriṣiriṣi, bakannaa lati ṣiṣẹ koodu ti ko ni igbẹkẹle ni ipinya. Awọn koodu ise agbese ti wa ni kikọ ni ipata ati ti wa ni pin labẹ awọn MIT iwe-ašẹ.

Gbigbe jẹ aṣeyọri nipasẹ iṣakojọpọ koodu ohun elo sinu koodu agbedemeji WebAssembly ipele kekere, eyiti o le ṣiṣẹ lori eyikeyi OS tabi fi sii ninu awọn eto ni awọn ede siseto miiran. Awọn eto naa jẹ awọn apoti iwuwo fẹẹrẹ ti o nṣiṣẹ WebAssembly pseudocode. Awọn apoti wọnyi ko ni so mọ ẹrọ ṣiṣe ati pe o le pẹlu koodu ti a kọ ni akọkọ ni eyikeyi ede siseto. Ohun elo irinṣẹ Emscripten le ṣee lo lati ṣajọ si WebAssembly. Lati tumọ WebAssembly sinu koodu ẹrọ ti iru ẹrọ lọwọlọwọ, o ṣe atilẹyin asopọ ti ọpọlọpọ awọn ẹhin akopọ (Singlepass, Cranelift, LLVM) ati awọn ẹrọ (lilo JIT tabi iran koodu ẹrọ).

Iṣakoso wiwọle ati ibaraenisepo pẹlu eto ti pese nipa lilo WASI (WebAssembly System Interface) API, eyiti o pese awọn atọkun siseto fun ṣiṣẹ pẹlu awọn faili, awọn iho ati awọn iṣẹ miiran ti a pese nipasẹ ẹrọ ṣiṣe. Awọn ohun elo ti ya sọtọ lati eto akọkọ ni agbegbe apoti iyanrin ati ni iwọle si iṣẹ ti a kede nikan (eroja aabo kan ti o da lori iṣakoso agbara - fun awọn iṣe pẹlu ọkọọkan awọn orisun (awọn faili, awọn ilana, awọn iho, awọn ipe eto, bbl), ohun elo gbọdọ fun ni awọn agbara ti o yẹ).

Lati ṣe ifilọlẹ eiyan WebAssembly kan, kan fi Wasmer sori ẹrọ akoko asiko, eyiti o wa laisi awọn igbẹkẹle ita (“curl https://get.wasmer.io -sSfL | sh”), ati ṣiṣe faili to wulo (“wasmer test.wasm” ). Awọn eto ti pin kaakiri ni irisi awọn modulu WebAssembly deede, eyiti o le ṣakoso ni lilo oluṣakoso package WAPM. Wasmer tun wa bi ile-ikawe ti o le ṣee lo lati fi sabe koodu WebAssembly sinu Rust, C/C++, C # D, Python, JavaScript, Go, PHP, Ruby, Elixir, ati awọn eto Java.

Syeed gba ọ laaye lati ṣaṣeyọri iṣẹ ṣiṣe ohun elo ti o sunmọ awọn apejọ abinibi. Lilo Ẹrọ Nkan Native fun module WebAssembly, o le ṣe ina koodu ẹrọ ("wasmer compile -native" lati ṣe ipilẹṣẹ .so, .dylib ati awọn faili ohun .dll ti a ti ṣajọ tẹlẹ), eyiti o nilo akoko asiko to kere julọ lati ṣiṣẹ, ṣugbọn da duro gbogbo ipinya apoti iyanrin. awọn ẹya ara ẹrọ. O ṣee ṣe lati pese awọn eto ti a ti ṣajọ tẹlẹ pẹlu Wasmer ti a ṣe sinu. API Rust ati Wasm-C-API ni a funni fun ṣiṣẹda awọn afikun ati awọn amugbooro.

Iyipada pataki ninu nọmba ẹya ti Wasmer ni nkan ṣe pẹlu ifihan ti awọn ayipada ti ko ni ibamu si API ti inu, eyiti, ni ibamu si awọn olupilẹṣẹ, kii yoo kan 99% ti awọn olumulo Syeed. Lara awọn ayipada ti o fọ ibamu, iyipada tun wa ni ọna kika ti awọn modulu Wasm serialized (awọn modulu serialized ni Wasmer 1.0 kii yoo ni anfani lati lo ni Wasmer 2.0). Awọn iyipada miiran:

  • Atilẹyin fun awọn itọnisọna SIMD (Itọsọna Kanṣoṣo, Data Multiple), gbigba parallelization ti awọn iṣẹ data. Lara awọn agbegbe ti lilo SIMD le ṣe ilọsiwaju iṣẹ ṣiṣe ni pataki ni ẹkọ ẹrọ, fifi koodu fidio ati iyipada, ṣiṣe aworan, simulation ti awọn ilana ti ara ati ifọwọyi awọn aworan.
  • Atilẹyin fun awọn oriṣi itọkasi, gbigba awọn modulu Wasm lati wọle si alaye ni awọn modulu miiran tabi ni agbegbe abẹlẹ.
  • Awọn iṣapeye iṣẹ ṣiṣe pataki ti ṣe. Iyara akoko asiko LLVM pẹlu awọn nọmba aaye lilefoofo ti pọ nipasẹ isunmọ 50%. Awọn ipe iṣẹ ti ni iyara pupọ nipasẹ idinku awọn ipo to nilo iraye si ekuro. Iṣẹ olupilẹṣẹ koodu Cranelift ti pọ nipasẹ 40%. Dinku akoko deserialization data.
    Wasmer 2.0, ohun elo irinṣẹ fun kikọ awọn ohun elo orisun WebAssembly, wa
    Wasmer 2.0, ohun elo irinṣẹ fun kikọ awọn ohun elo orisun WebAssembly, wa
  • Lati ṣe afihan ni deede diẹ sii, awọn orukọ ti awọn ẹrọ ti yipada: JIT → Gbogbogbo, Ilu abinibi → Dylib (Ile-ikawe Yiyi), Faili Nkan → StaticLib (Ile-ikawe Aimi).

orisun: opennet.ru

Fi ọrọìwòye kun