{"id":105726,"date":"2022-11-27T09:36:51","date_gmt":"2022-11-27T07:36:51","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/dostupen-wasmer-3-0-instrumentarij-dlya-sozdaniya-prilozhenij-na-baze-webassembly"},"modified":"2022-11-27T09:36:51","modified_gmt":"2022-11-27T07:36:51","slug":"dostupen-wasmer-3-0-instrumentarij-dlya-sozdaniya-prilozhenij-na-baze-webassembly","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/dostupen-wasmer-3-0-instrumentarij-dlya-sozdaniya-prilozhenij-na-baze-webassembly","title":{"rendered":"\u00c8 disponibile Wasmer 3.0, uno strumento per la creazione di applicazioni basate su WebAssembly.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00c8 stato presentato il terzo rilascio significativo del progetto Wasmer, che sviluppa un runtime per l'esecuzione di moduli WebAssembly, utilizzabile per creare applicazioni universali in grado di funzionare su diversi sistemi operativi e per l'esecuzione isolata di codice non attendibile. Il codice del progetto \u00e8 scritto in Rust e distribuito sotto licenza MIT.      <\/p>\n<p>La possibilit\u00e0 di eseguire un'applicazione su diverse piattaforme \u00e8 garantita dalla compilazione del codice in un codice intermedio a basso livello chiamato WebAssembly, che pu\u00f2 essere eseguito su qualsiasi sistema operativo o integrato in programmi scritti in altri linguaggi di programmazione. I programmi sono contenitori leggeri in cui viene eseguito il pseudocodice WebAssembly. Questi contenitori non sono legati a un sistema operativo specifico e possono includere codice scritto originariamente in qualsiasi linguaggio di programmazione. Per la compilazione in WebAssembly pu\u00f2 essere utilizzato l'ambiente di sviluppo Emscripten. Per la traduzione di WebAssembly in codice macchina della piattaforma attuale \u00e8 supportata l'integrazione di vari backend di compilazione (Singlepass, Cranelift, LLVM) e motori (utilizzando JIT o generazione di codice macchina).        <\/p>\n<p>Le applicazioni sono isolate dal sistema principale in un ambiente sandbox e hanno accesso solo alle funzionalit\u00e0 dichiarate (meccanismo di sicurezza basato sul controllo delle capacit\u00e0 \u2014 per le azioni su ciascuna risorsa (file, directory, socket, chiamate di sistema, ecc.) all'applicazione devono essere conferiti i corrispondenti diritti). La gestione degli accessi e l'interazione con il sistema sono garantite tramite l'API WASI (WebAssembly System Interface), che fornisce interfacce per lavorare con file, socket e altre funzionalit\u00e0 offerte dal sistema operativo.     <\/p>\n<p>La piattaforma consente di ottenere prestazioni di esecuzione delle applicazioni simili a quelle delle build native. Grazie a Native Object Engine, per il modulo WebAssembly \u00e8 possibile generare codice macchina (\u2018wasmer compile \u2014native\u2019 per generare file oggetto precompilati .so, .dylib e .dll), per l'esecuzione del quale \u00e8 richiesto un runtime minimo, ma tutte le capacit\u00e0 di isolamento sandbox sono mantenute. \u00c8 possibile fornire programmi precompilati con Wasmer integrato. Per la creazione di estensioni e aggiunte sono disponibili API Rust e Wasm-C-API.      <\/p>\n<p>Per eseguire un contenitore WebAssembly \u00e8 sufficiente installare il runtime Wasmer nel sistema, che viene fornito senza dipendenze esterne (&#171;curl https:\/\/get.wasmer.io -sSfL | sh&#187;), e avviare il file necessario (&#171;wasmer test.wasm&#187;). I programmi vengono distribuiti sotto forma di normali moduli WebAssembly, per la gestione dei quali \u00e8 possibile utilizzare il gestore di pacchetti WAPM. Wasmer \u00e8 disponibile anche sotto forma di libreria, che pu\u00f2 essere utilizzata per integrare il codice WebAssembly in programmi scritti in linguaggi come Rust, C\/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir e Java.     <\/p>\n<p>Principali cambiamenti in Wasmer 3.0:  <\/p>\n<ul>\n<li class=\"l\"> \u00c8 stata aggiunta la possibilit\u00e0 di creare file eseguibili nativi per qualsiasi piattaforma. Completamente riprogettato il comando \u2018wasmer create-exe\u2019, che consente di trasformare un file con codice intermedio WebAssembly in file eseguibili autonomi per le piattaforme Linux, Windows e macOS, che possono funzionare senza installare Wasmer.\n<li class=\"l\"> \u00c8 stata fornita la possibilit\u00e0 di eseguire pacchetti WAPM, situati nella directory wapm.io, tramite il comando \u2018wasmer run\u2019. Ad esempio, l'esecuzione di \u2018wasmer run python\/python\u2019 porter\u00e0 al caricamento dal repository wapm.io del pacchetto python e alla sua esecuzione.\n<li class=\"l\"> L'API Wasmer Rust \u00e8 stato completamente riprogettato, modificando lo stile di gestione della memoria e consentendo la memorizzazione sicura degli oggetti Wasm nella struttura Store. \u00c8 stata proposta una nuova struttura MemoryView che permette di leggere e scrivere dati in un'area di memoria lineare.\n<li class=\"l\"> \u00c8 stato implementato un set di componenti wasmer-js per eseguire Wasmer nel web browser e interagire con esso tramite JavaScript, utilizzando la libreria wasm-bindgen. Le capacit\u00e0 di wasmer-js sono equivalenti a quelle dei componenti wasmer-sys, progettati per eseguire Wasmer nei normali sistemi operativi.\n<li class=\"l\"> I motori sono stati semplificati. Invece dei motori separati per JIT, linking dinamico e linking statico (Universal, Dylib, StaticLib), ora \u00e8 proposto un unico motore comune, con gestione del caricamento e del salvataggio del codice a livello di configurazione.\n<li class=\"l\"> Per la deserializzazione degli artefatti \u00e8 stato utilizzato il framework rkyv, che opera in modalit\u00e0 zero-copy, cio\u00e8 non richiede l'allocazione di memoria aggiuntiva e esegue la deserializzazione utilizzando esclusivamente il buffer fornito inizialmente. L'adozione di rkyv ha notevolmente aumentato la velocit\u00e0 di avvio.\n<li class=\"l\"> \u00c8 stato migliorato il compilatore Singlepass a passaggio singolo, che ora supporta funzioni con pi\u00f9 argomenti (multi-value), aumentando l'affidabilit\u00e0 e aggiungendo il supporto per i frame di gestione delle eccezioni.\n<li class=\"l\"> Migliorata l'implementazione dell'API WASI (WebAssembly System Interface). Sono stati risolti problemi nell'interfaccia API WASI per la gestione del file system. I tipi interni sono stati ridefiniti utilizzando WAI (WebAssembly Interfaces), il che permetter\u00e0 in futuro di realizzare una serie di nuove funzionalit\u00e0.        <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58203\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0442\u0440\u0435\u0442\u0438\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Wasmer, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e runtime \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439 WebAssembly, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430, \u043d\u0435 \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0434\u043e\u0432\u0435\u0440\u0438\u044f. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-105726","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0442\u0440\u0435\u0442\u0438\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Wasmer, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e runtime \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439 WebAssembly, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/dostupen-wasmer-3-0-instrumentarij-dlya-sozdaniya-prilozhenij-na-baze-webassembly\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d Wasmer 3.0, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0431\u0430\u0437\u0435 WebAssembly | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0442\u0440\u0435\u0442\u0438\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Wasmer, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e runtime \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439 WebAssembly, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/dostupen-wasmer-3-0-instrumentarij-dlya-sozdaniya-prilozhenij-na-baze-webassembly\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-11-27T07:36:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-11-27T07:36:51+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47\u00c8 disponibile Wasmer 3.0, l'insieme di strumenti per creare applicazioni basate su WebAssembly | ProHoster","description":"\u00c8 stato presentato il terzo importante aggiornamento del progetto Wasmer, che sviluppa un runtime per l'esecuzione di moduli WebAssembly, utilizzabile per creare applicazioni universali in grado di funzionare in diverse situazioni.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/dostupen-wasmer-3-0-instrumentarij-dlya-sozdaniya-prilozhenij-na-baze-webassembly","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d Wasmer 3.0, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0431\u0430\u0437\u0435 WebAssembly | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0442\u0440\u0435\u0442\u0438\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Wasmer, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e runtime \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439 WebAssembly, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/dostupen-wasmer-3-0-instrumentarij-dlya-sozdaniya-prilozhenij-na-baze-webassembly","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-11-27T07:36:51+00:00","article:modified_time":"2022-11-27T07:36:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/105726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=105726"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/105726\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=105726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=105726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=105726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}