Repolode
Millillion

Millillion/lasm

Compilador ahead-of-time de Lean 4 que convierte programas Lean comunes en WebAssembly para Node, serverless, edge, WASI y navegadores.

Estrellas
100
Forks
7
Issues abiertos
1
Último commit
hace 9 horas

¿Qué es?

Lasm compila programas Lean 4 comunes a WebAssembly ahead-of-time, para que una misma base de código Lean pueda ejecutarse como servidor Node, función serverless o edge, módulo WASI o Fastly, o aplicación de navegador. Se distribuye en npm e incluye Lean y sus herramientas de compilación, así que solo hace falta tener instalado Node, Bun o Deno.

Lasm ofrece interoperabilidad con JavaScript y npm mediante un import de Lean y una declaración por cada función llamada. También incluye bibliotecas Lean para HTTP (Lasm.Fetch), interfaces de usuario en el navegador con un diff cuya corrección está demostrada (Lasm.UI), APIs tipadas de cliente/servidor (Lasm.RPC) y acceso al DOM (Lasm.Web). Como el código está escrito en Lean, es posible expresar propiedades del código desplegado como teoremas y verificarlas durante la compilación. Un ejemplo destacado es Conduit, una aplicación RealWorld que incluye 117 teoremas demostrados sobre su lógica de autorización, paginación y validación.

Los destinos de despliegue incluyen AWS Lambda, Vercel, Netlify, Azure Functions, Google Cloud Functions, Cloudflare Workers, Deno Deploy, Fastly Compute y salidas para WASI y navegadores. Los programas no pueden elaborar ni evaluar Lean en tiempo de ejecución, y las compilaciones para edge, Bun/Deno, WASI y navegadores se ejecutan en un solo hilo, sin sockets ni procesos.

Funciones clave

  • 01Compila programas Lean 4 comunes a WebAssembly ahead-of-time.
  • 02Genera compilaciones para Node, AWS Lambda, Vercel, Netlify, Cloudflare Workers, Deno Deploy, Fastly, WASI y navegadores.
  • 03Permite llamar a paquetes npm y funciones JavaScript desde Lean mediante declaraciones @[js] de una sola línea.
  • 04Ofrece bibliotecas Lean para HTTP, interfaces de usuario en el navegador, RPC tipado de cliente/servidor y acceso al DOM.
  • 05Se instala con npm e incluye Lean y las herramientas de compilación; ofrece plantillas de proyectos mediante npm create.

Casos de uso

  • Crear una API REST para Node en Lean que use Hono o Express.
  • Desplegar una función Lean en plataformas serverless o edge.
  • Crear una aplicación de página única para el navegador en Lean con salida renderizada en el servidor.
  • Demostrar invariantes, como las reglas de autorización, en un backend web.

Inicio rápido

  1. 1

    Crea un proyecto nuevo con la plantilla de Hono

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

    Entra en el proyecto e instala las dependencias

    cd my-app && npm install
  3. 3

    Inicia el servidor de desarrollo

    npm run dev

Antes de usarlo

  • Cadena de herramientas basada en Lean: la primera compilación descarga unos 250–275 MB de Lean y herramientas de compilación.
  • Las compilaciones para Edge, Bun/Deno, WASI y navegadores se ejecutan en un solo hilo, sin sockets ni procesos.
  • El compilador requiere Node 24 o posterior; Bun o Deno son los únicos runtimes alternativos.

En colecciones

Temas

Preguntas frecuentes

¿Qué es lasm?
Compilador ahead-of-time de Lean 4 que convierte programas Lean comunes en WebAssembly para Node, serverless, edge, WASI y navegadores. Lasm compila programas Lean 4 comunes a WebAssembly ahead-of-time, para que una misma base de código Lean pueda ejecutarse como servidor Node, función serverless o edge, módulo WASI o Fastly, o aplicación de navegador. Se distribuye en npm e incluye Lean y sus herramientas de compilación, así que solo hace falta tener instalado Node, Bun o Deno.
¿lasm es gratuito? ¿Qué licencia tiene?
lasm es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿lasm sigue mantenido?
Mantenimiento activo. El último commit de lasm fue el 6 nov 2026.
¿Para qué puedo usar lasm?
Crear una API REST para Node en Lean que use Hono o Express. Desplegar una función Lean en plataformas serverless o edge. Crear una aplicación de página única para el navegador en Lean con salida renderizada en el servidor. Demostrar invariantes, como las reglas de autorización, en un backend web.
¿Cómo se instala lasm?
Crea un proyecto nuevo con la plantilla de Hono: npm create @lasm@latest my-app -- --template hono Entra en el proyecto e instala las dependencias: cd my-app && npm install Inicia el servidor de desarrollo: npm run dev
¿Dónde consigo lasm?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Millillion/lasm

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados