Wasmer 3.0 chega com melhorias em WASI, APIs, gerenciamento de memória e muito mais

máquina de lavar

Wasmer é um tempo de execução WebAssembly rápido e seguro que permite que contêineres superleves sejam executados em qualquer lugar: do desktop à nuvem, borda e dispositivos IoT

Depois de quase 6 meses desde o lançamento anterior, a nova versão do Wasmer 3.0 foi lançada, a terceira grande versão do projeto que desenvolve um tempo de execução para executar módulos WebAssembly que pode ser usado para criar aplicativos universais que podem ser executados em diferentes sistemas operacionais, bem como execução de código não confiável.

La capacidade de executar o mesmo aplicativo em diferentes plataformas ele é fornecido compilando o código em código intermediário WebAssembly de baixo nível que pode ser executado em qualquer sistema operacional ou ser incorporado a programas em outras linguagens de programação. Programas são contêineres leves que executam pseudocódigo WebAssembly.

Esses contêineres não estão vinculados ao sistema operacional e podem conter código originalmente escrito em qualquer linguagem de programação.

Para traduzir o WebAssembly no código de máquina da plataforma atual, você suporta a conexão de diferentes back-ends de construção (Singlepass, Cranelift, LLVM) e motores (usando JIT ou gerando código de máquina). O controle de acesso e a interação com o sistema são fornecidos pela API WASI (WebAssembly System Interface), que fornece interfaces de programação para trabalhar com arquivos, soquetes e outras funções fornecidas pelo sistema operacional.

Plataforma permite que você alcance um desempenho de execução de aplicativos próximo ao das compilações nativas.

Principais novidades do Wasmer 3.0

Nesta nova versão do Wasmer 3.0, o capacidade de criar arquivos executáveis ​​nativos para qualquer plataforma. O comando "wasmer create-exe» foi completamente redesenhado para converter um arquivo de código intermediário WebAssembly em executáveis ​​autônomos para plataformas Linux, Windows e macOS que podem ser executados sem a instalação do Wasmer.

Outra novidade que se apresenta é que o capacidade de executar pacotes WAPM localizado no diretório wapm.io usando o comando "wasmer run". Por exemplo, execute "wasmer executa python/python» irá baixar o pacote python do repositório wapm.io e executá-lo.

A API Wasmer Rust foi completamente redesenhada, alterando a maneira como ele lida com a memória e fornecendo a capacidade de armazenar objetos Wasm com segurança na estrutura Store.

Destaque também nesta nova versão do Wasmer 3.0 é o implementação aprimorada da API WASI (WebAssembly System Interface), além de corrigir problemas na API WASI para trabalhar com o sistema de arquivos. Os tipos internos foram redesenhados utilizando WAI (WebAssembly Interfaces), o que permitirá a implementação de uma série de novas funcionalidades no futuro.

Além disso, os engines também foram simplificados, pois ao invés de engines separadas para JIT, vinculação dinâmica e estática (Universal, Dylib, StaticLib), agora oferece um mecanismo comum e carrega e salva código que é controlado no nível de configuração do parâmetro.

Para desserializar artefatos, o framework rkyv é usado, que fornece uma operação de cópia zero, ou seja, não requer alocação de memória adicional e executa a desserialização usando apenas o buffer fornecido inicialmente.

Do outras mudanças que se destacam nesta nova versão:

  • O uso do rkyv aumentou significativamente a velocidade de inicialização.
  • O compilador Singlepass foi aprimorado para oferecer suporte a funções com vários valores, melhorar a confiabilidade e adicionar suporte para estruturas de manipulação de exceção.
  • O conjunto de componentes wasmer-js foi implementado para executar o Wasmer em um navegador da Web e interagir com ele a partir do JavaScript usando a biblioteca wasm-bindgen.
  • Uma nova estrutura foi proposta. MemóriaView que permite ler e escrever dados em uma área de memória linear.

Finalmente, deve ser mencionado que os programas são distribuídos na forma de módulos WebAssembly comuns, que podem ser gerenciados usando o gerenciador de pacotes WAPM. Wasmer também está disponível como uma biblioteca que pode ser usada para incorporar código WebAssembly em programas Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir e Java.

O código do projeto é escrito em Rust e é distribuído sob a licença MIT e você pode conferir mais sobre ele, no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.