Sobre o projeto

Hyperlight é um Gerenciador de Máquina Virtual (VMM) leve, destinado a ser incorporado como uma biblioteca dentro de aplicações, permitindo que elas executem código não confiável dentro de micro máquinas virtuais isoladas por hipervisor. É um projeto sandbox da Cloud Native Computing Foundation e atualmente está em versão pré-1.0, portanto a API pode mudar entre versões. Como funciona: a aplicação host constrói um sandbox a partir de um binário convidado e chama funções através da fronteira da VM de forma muito semelhante a funções locais. Os convidados são binários ELF criados especificamente, escritos em Rust no_std ou C, sem kernel ou sistema operacional convidado, o que mantém baixos o tempo de inicialização e o consumo de memória. Host e convidado se comunicam por meio de chamadas de função tipadas, e os convidados são isolados por padrão, sem acesso ao sistema de arquivos ou à rede do host. O estado do convidado persiste entre chamadas, e snapshot()/restore() podem salvar e redefinir a memória da VM para que os sandboxes possam ser reutilizados sem recriar a VM. Os hipervisores suportados incluem KVM, MSHV e o Windows Hypervisor Platform. O README mostra um exemplo de host que registra uma função de host e chama o convidado, e um exemplo de convidado usando macros como #[host_function] e #[guest_function]. Os casos de uso declarados incluem executar código não confiável ou de terceiros com isolamento em nível de hipervisor, criar e destruir sandboxes em milissegundos, fazer chamadas de função do convidado em microssegundos, incorporar execução em sandbox em uma aplicação, construir funções como serviço com isolamento por hipervisor e reutilizar sandboxes via snapshot e restore. O projeto afirma explicitamente que não se destina à virtualização de uso geral nem à execução de cargas de trabalho completas de convidados Linux que precisem de syscalls, rede ou acesso ao sistema de arquivos. O repositório está organizado em bibliotecas de host e convidado, um wrapper de API C, uma libc de convidado construída a partir de picolibc, macros de convidado e de componentes, suporte a tracing, código comum compartilhado, definições de esquema FlatBuffer, uma ferramenta de dump de trace e programas de convidado de teste em Rust e C. Projetos relacionados incluem cargo-hyperlight para construir e estruturar convidados, hyperlight-wasm para módulos WebAssembly, hyperlight-js para JavaScript, hyperlight-sandbox para sandboxing multi-backend com SDKs de Python, .NET e Rust, e hyperlight-unikraft para executar aplicações Linux usando Unikraft como kernel convidado. Documentação, diretrizes de contribuição e detalhes das reuniões da comunidade são fornecidos no repositório.