Repolode
Millillion

Millillion/lasm

Compilador AOT para Lean 4 que transforma programas Lean comuns em WebAssembly para Node, serverless, edge, WASI e navegadores.

Estrelas
100
Forks
7
Issues abertas
1
Último commit
há 21 horas

O que é?

Lasm compila programas Lean 4 comuns antecipadamente para WebAssembly, permitindo que uma única base de código Lean rode como servidor Node, função serverless ou edge, módulo WASI ou Fastly, ou aplicativo de navegador. Ele é distribuído pelo npm e inclui Lean e suas ferramentas de build, então os desenvolvedores precisam ter instalado apenas Node, Bun ou Deno.

Lasm oferece interoperabilidade com JavaScript e npm por meio de um import em Lean e uma declaração para cada função chamada, além de bibliotecas Lean para HTTP (Lasm.Fetch), UI de navegador com um diff cuja correção é provada (Lasm.UI), APIs tipadas de cliente/servidor (Lasm.RPC) e acesso ao DOM (Lasm.Web). Como o código é Lean, é possível escrever propriedades do código implantado como teoremas e verificá-las no build. Um exemplo de destaque, um aplicativo RealWorld chamado Conduit, inclui 117 teoremas provados sobre sua lógica de autorização, paginação e validação.

Os destinos de implantação incluem AWS Lambda, Vercel, Netlify, Azure Functions, Google Cloud Functions, Cloudflare Workers, Deno Deploy, Fastly Compute, além de saídas WASI e para navegador. Os programas não podem elaborar nem avaliar Lean em tempo de execução, e os builds para edge, Bun/Deno, WASI e navegador rodam em uma única thread, sem sockets ou processos.

Recursos principais

  • 01Compila programas Lean 4 comuns antecipadamente para WebAssembly.
  • 02Gera builds para Node, AWS Lambda, Vercel, Netlify, Cloudflare Workers, Deno Deploy, Fastly, WASI e navegadores.
  • 03Chama pacotes npm e funções JavaScript a partir de Lean por meio de declarações @[js] de uma linha.
  • 04Oferece bibliotecas Lean para HTTP, UI de navegador, RPC tipado de cliente/servidor e acesso ao DOM.
  • 05Instala pelo npm com Lean e ferramentas de build incluídos; oferece templates de projeto via npm create.

Casos de uso

  • Criar uma API REST para Node em Lean que use Hono ou Express.
  • Implantar uma função Lean em plataformas serverless ou edge.
  • Criar um aplicativo de página única para navegador em Lean com saída renderizada no servidor.
  • Provar invariantes, como regras de autorização, em um backend web.

Início rápido

  1. 1

    Crie um novo projeto com o template do Hono

    npm create @lasm@latest my-app -- --template hono
  2. 2

    Acesse o projeto e instale as dependências

    cd my-app && npm install
  3. 3

    Inicie o servidor de desenvolvimento

    npm run dev

Antes de usar

  • Toolchain baseada em Lean: a primeira compilação baixa cerca de 250–275 MB do Lean e das ferramentas de compilação.
  • As compilações para Edge, Bun/Deno, WASI e navegadores são executadas em uma única thread, sem sockets ou processos.
  • O compilador requer Node 24 ou posterior; Bun ou Deno são os únicos runtimes alternativos.

Em coleções

Tópicos

Perguntas frequentes

O que é lasm?
Compilador AOT para Lean 4 que transforma programas Lean comuns em WebAssembly para Node, serverless, edge, WASI e navegadores. Lasm compila programas Lean 4 comuns antecipadamente para WebAssembly, permitindo que uma única base de código Lean rode como servidor Node, função serverless ou edge, módulo WASI ou Fastly, ou aplicativo de navegador. Ele é distribuído pelo npm e inclui Lean e suas ferramentas de build, então os desenvolvedores precisam ter instalado apenas Node, Bun ou Deno.
lasm é gratuito? Qual é a licença?
lasm é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
lasm ainda é mantido?
Manutenção ativa. O último commit de lasm foi em 5 de nov. de 2026.
Para que posso usar lasm?
Criar uma API REST para Node em Lean que use Hono ou Express. Implantar uma função Lean em plataformas serverless ou edge. Criar um aplicativo de página única para navegador em Lean com saída renderizada no servidor. Provar invariantes, como regras de autorização, em um backend web.
Como instalar lasm?
Crie um novo projeto com o template do Hono: npm create @lasm@latest my-app -- --template hono Acesse o projeto e instale as dependências: cd my-app && npm install Inicie o servidor de desenvolvimento: npm run dev
Onde consigo lasm?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Millillion/lasm

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados