9 pontos por GN⁺ 2025-04-09 | 2 comentários | Compartilhar no WhatsApp
  • Hyperlight Wasm é a mais recente expansão da tecnologia máquina virtual (VM) ultraleve Hyperlight, doada pela Microsoft à CNCF, e executa workloads WebAssembly (baseados no Component Model) de forma rápida e segura
  • Diferente de VMs tradicionais, sem SO nem dispositivos virtuais, expõe apenas fatias de memória e CPU, oferecendo tempo de inicialização rápido de 1 a 2 ms
  • Componentes wasm escritos em várias linguagens (C, Rust, Go, Python, JS etc.) podem ser executados sob proteção do hipervisor

Principais características do Hyperlight Wasm

  • Desempenho mais rápido que VMs tradicionais

    • VM tradicional: inicialização de dispositivos → carregamento do kernel → boot do SO → execução da aplicação (cerca de 125 ms)
    • Hyperlight Wasm: pode executar apenas com a criação de uma fatia de memória + carregamento do Wasm (1 a 2 ms, com meta futura de <1 ms)
    • A alta velocidade de execução favorece execução serverless sob demanda ou configurações com warm pool mínimo
  • Execução de várias linguagens mesmo sem sistema operacional

    • Com base no padrão WASI e no WebAssembly Component Model, pode executar componentes escritos na maioria das linguagens
    • Inclui o runtime wasmtime, permitindo que linguagens interpretadas como Python, JavaScript e C# também sejam executadas junto com o runtime
    • Do ponto de vista do desenvolvedor, basta compilar para o alvo wasm32-wasip2 para executar no Hyperlight
  • Segurança aprimorada (sandbox duplo)

    • Estrutura de proteção dupla com sandbox de Wasm + sandbox de VM baseado em hipervisor
    • Mesmo que um invasor escape do wasm, ainda precisará contornar o sandbox da VM

Exemplo de desenvolvimento: execução de um servidor UDP Echo baseado em Rust

  • Download e compilação do binário wasm com a CLI wkg
  • Conversão do arquivo de definição de interface WASI (.wit) em binário para gerar bindings
  • Com hyperlight_component_macro e host_bindgen!, geração automática de bindings para interfaces de import/export do Wasm
  • Definição da lógica do servidor echo por meio da implementação da interface UdpSocket
  • Criação do sandbox hyperlight-wasm para carregar e executar o componente wasm
  • Compilação Ahead-of-Time

    • Uso da ferramenta hyperlight-wasm-aot para compilar wasm em AOT e reduzir o tempo de execução
    • É possível iniciar o servidor com cargo run e testar UDP com o comando nc -u

Escalabilidade e planos futuros

  • O Hyperlight Wasm deverá oferecer suporte não só a x86, mas também à arquitetura Arm64
  • Atualmente é preciso implementar a interface WASI diretamente, mas no futuro bindings padrão deverão ser fornecidos
  • O plano é permitir o sandboxing rápido de serviços simples, como servidores HTTP

Como participar da comunidade open source

  • Hyperlight é um projeto open source da Microsoft publicado sob a licença Apache 2.0 e registrado no CNCF Sandbox
  • Hyperlight Wasm tem como objetivo oferecer um ambiente de execução rápido e seguro, adequado para computação cloud-native
  • É possível conferir o código e contribuir por meio do repositório no GitHub

👉 Repositório no GitHub: hyperlight-wasm

2 comentários

 
GN⁺ 2025-04-09
Comentários do Hacker News
  • Há alguns meses comecei a usar WebAssembly para valer para criar uma biblioteca de autenticação de backend que funciona em várias linguagens

    • Baseei em Extism para reduzir a complexidade da interface
    • Foi uma experiência quase mágica
    • WASM está em uma posição interessante
    • Provou seu valor com uma especificação central mínima
    • Agora há um grande impulso para implementar uma superfície de API maior para WASI e o Component Model
    • Muita gente da comunidade está preocupada com essa direção
    • Pessoalmente, espero que o WASM não fique complexo demais e siga o caminho dos navegadores web, onde só grandes empresas de tecnologia conseguem implementar e experimentar
  • Há alguns meses anunciaram o Hyperlight, um VMM leve

    • É possível criar uma nova VM em cerca de 1 milissegundo
    • Hoje estão felizes em anunciar um guest Hyperlight Wasm baseado no runtime Wasmtime
    • Agora é possível executar binários Wasm Component sobre a interface WASI sem um sistema operacional convidado dentro da VM
    • Neste post explicam como isso funciona e mostram exemplos
  • Muito empolgante

    • Espero que WASM/WASI cresça até realizar o sonho que a JVM representava nos anos 90
    • Pode se tornar um alvo de desenvolvimento com segurança de memória, fácil de portar e testar em várias plataformas
    • Espero que o WASM possa ser usado para muito mais coisas além do navegador
  • Parece interessante

    • Seria um caso de uso para quando você quiser implementar diretamente algo como Cloudflare Workers ou Lambda com WASM?
  • Muito legal

    • Estou tentando entender qual é o valor agregado aqui
    • Em que isso difere de executar via wasmtime?
  • Todos esses projetos legais e interessantes me fazem pensar que o WASM está tendo sucesso em todo lugar, menos no navegador

    • Talvez seja hora de tirar o Web de Web Assembly e dar outro nome
  • Alguém tem alguma ideia de como eu poderia encaixar isso em um setup de Proxmox?

    • Pelo que entendi, isso foi projetado para funcionar em bare metal
    • Fica um pouco estranho porque não tenho x86 bare metal sobrando
    • Acho que vou ter que colocar isso em uma VM e aceitar virtualização aninhada
  • Como as instâncias são iniciadas e gerenciadas?

    • É por meio de qual API?
    • Dá para fornecer capacidades para executar uma árvore de Wasm Components conectados ao binário Wasm Component, delegar funcionalidades e gerenciar o ciclo de vida?
  • Basicamente existe uma VM (wasm) para isolar programas em uma VM de hardware, que é uma abstração para isolar programas em um processo de espaço de usuário (processo Linux)

    • Você já pensou em usar processos Unix para isolar programas?
  • É um unikernel/library OS?