Repolode
Millillion

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. 1

    使用 Hono 模板创建新项目

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

    进入项目并安装依赖

    cd my-app && npm install
  3. 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 数据每日更新。

相关项目