基于 Web 标准构建的轻量高速 Web 框架,可运行在 Cloudflare Workers、Deno、Bun、Node.js 等多种运行时。
Millillion/lasm
将普通 Lean 4 程序提前编译为 WebAssembly,可部署到 Node、无服务器、边缘、WASI 和浏览器。
- Star
- 103
- Fork
- 7
- 未关闭 Issue
- 1
- 最近提交
- 4小时前
这是什么?
Lasm 将普通 Lean 4 程序提前编译为 WebAssembly,同一套 Lean 代码可以作为 Node 服务、无服务器或边缘函数、WASI 或 Fastly 模块,也可以作为浏览器应用运行。它通过 npm 发布并自带 Lean 及构建工具,使用者只需安装 Node、Bun 或 Deno。
项目通过 Lean 的 import 和每个被调用函数一行声明来与 JavaScript 及 npm 互操作,并提供 Lasm.Fetch(HTTP)、Lasm.UI(浏览器界面,差分算法有证明)、Lasm.RPC(类型化的前后端接口)和 Lasm.Web(DOM 访问)等 Lean 库。由于代码就是 Lean,部署代码的性质可以写成定理并在构建时检查。示例项目 Conduit 是一个 RealWorld 应用,包含 117 条关于授权、分页和校验逻辑的已证明定理。
支持的部署目标包括 AWS Lambda、Vercel、Netlify、Azure Functions、Google Cloud Functions、Cloudflare Workers、Deno Deploy、Fastly Compute,以及 WASI 和浏览器产物。运行时程序不能在部署后解析或求值 Lean 代码;边缘、Bun/Deno、WASI 和浏览器构建为单线程,不支持 socket 和进程。
核心功能
- 01将普通 Lean 4 程序提前编译为 WebAssembly。
- 02可构建 Node、AWS Lambda、Vercel、Netlify、Cloudflare Workers、Deno Deploy、Fastly、WASI 和浏览器目标。
- 03通过一行 @[js] 声明从 Lean 调用 npm 包和 JavaScript 函数。
- 04提供 HTTP、浏览器界面、类型化前后端 RPC 和 DOM 访问等 Lean 库。
- 05通过 npm 安装,内置 Lean 和构建工具,并可用 npm create 生成项目模板。
适用场景
- 用 Lean 编写基于 Hono 或 Express 的 Node REST API。
- 将 Lean 函数部署到无服务器或边缘平台。
- 用 Lean 构建带服务端渲染的浏览器单页应用。
- 为 Web 后端的授权规则等不变量编写形式化证明。
快速上手
- 1
使用 Hono 模板创建新项目
npm create @lasm@latest my-app -- --template hono - 2
进入项目并安装依赖
cd my-app && npm install - 3
启动开发服务器
npm run dev
使用前须知
- 基于 Lean 的工具链:首次构建需下载约 250–275 MB 的 Lean 和构建工具。
- 边缘、Bun/Deno、WASI 和浏览器构建以单线程运行,不支持套接字或进程。
- 编译器需要 Node 24 或更高版本,Bun 或 Deno 是仅有的其他运行时选项。
收录于专题
标签
常见问题
- lasm 是什么?
- 将普通 Lean 4 程序提前编译为 WebAssembly,可部署到 Node、无服务器、边缘、WASI 和浏览器。 Lasm 将普通 Lean 4 程序提前编译为 WebAssembly,同一套 Lean 代码可以作为 Node 服务、无服务器或边缘函数、WASI 或 Fastly 模块,也可以作为浏览器应用运行。它通过 npm 发布并自带 Lean 及构建工具,使用者只需安装 Node、Bun 或 Deno。
- lasm 可以免费使用吗?用的什么许可证?
- lasm 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- lasm 还在维护吗?
- 活跃维护中。lasm 最近一次提交是在 2026年11月7日。
- lasm 适合用来做什么?
- 用 Lean 编写基于 Hono 或 Express 的 Node REST API。 将 Lean 函数部署到无服务器或边缘平台。 用 Lean 构建带服务端渲染的浏览器单页应用。 为 Web 后端的授权规则等不变量编写形式化证明。
- lasm 怎么安装和运行?
- 使用 Hono 模板创建新项目: npm create @lasm@latest my-app -- --template hono 进入项目并安装依赖: cd my-app && npm install 启动开发服务器: npm run dev
- 在哪里获取 lasm?
- 源代码和安装说明在 GitHub 上:https://github.com/Millillion/lasm
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 Cloudflare Workers 同款代码的 JavaScript/Wasm 服务端运行时,可用于自托管与本地开发。
一个实验性的编译器,可将 TypeScript/JavaScript 编译为原生可执行文件或 WebAssembly,运行时无需 Node.js。
基于 LLVM 的 Go 编译器,面向微控制器、WebAssembly 和命令行工具。
将 C# 与 .NET CIL 直接编译为小体积独立 WASI Wasm 组件的编译器、运行时与 SDK。
基于 Cranelift 代码生成器的独立 WebAssembly 运行时,支持 WASI 并提供多语言嵌入接口。