Repolode
Millillion

Millillion/lasm

通常のLeanプログラムをWebAssemblyに変換し、Node、サーバーレス、エッジ、WASI、ブラウザー向けに出力するLean 4のAOTコンパイラー。

スター
100
フォーク
7
未解決の Issue
1
最終コミット
19 時間前

これは何?

Lasmは通常のLean 4プログラムを事前コンパイルしてWebAssemblyに変換し、同じLeanコードベースをNodeサーバー、サーバーレスまたはエッジ関数、WASIまたはFastlyモジュール、ブラウザーアプリとして実行できるようにします。npmで提供され、Leanとビルドツールが同梱されているため、開発者がインストールする必要があるのはNode、Bun、またはDenoだけです。

Lasmは、Leanのimportと呼び出す関数ごとの宣言を通じてJavaScriptおよびnpmとの相互運用を実現します。また、HTTP用(Lasm.Fetch)、正しさが証明された差分処理を備えるブラウザーUI用(Lasm.UI)、型付きクライアント/サーバーAPI用(Lasm.RPC)、DOMアクセス用(Lasm.Web)のLeanライブラリを提供します。コードはLeanで記述するため、デプロイするコードの性質を定理として記述し、ビルド時に検証できます。代表例であるConduitというRealWorldアプリには、認可、ページネーション、検証ロジックに関する117件の証明済み定理が含まれています。

デプロイ先にはAWS Lambda、Vercel、Netlify、Azure Functions、Google Cloud Functions、Cloudflare Workers、Deno Deploy、Fastly Computeのほか、標準的なWASIおよびブラウザー向け出力が含まれます。プログラムは実行時にLeanのelaborationや評価を行えません。また、エッジ、Bun/Deno、WASI、ブラウザー向けビルドは、ソケットやプロセスを使わず単一スレッドで動作します。

主な機能

  • 01通常のLean 4プログラムを事前コンパイルしてWebAssemblyに変換します。
  • 02Node、AWS Lambda、Vercel、Netlify、Cloudflare Workers、Deno Deploy、Fastly、WASI、ブラウザー向けにビルドできます。
  • 031行の@[js]宣言を使って、LeanからnpmパッケージやJavaScript関数を呼び出せます。
  • 04HTTP、ブラウザーUI、型付きクライアント/サーバーRPC、DOMアクセス用のLeanライブラリを提供します。
  • 05Leanとビルドツールを同梱した状態でnpmからインストールでき、npm createでプロジェクトテンプレートを利用できます。

ユースケース

  • HonoやExpressを使うNode REST APIをLeanで作成する。
  • 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 ベースのツールチェーン:初回ビルド時に、Lean とビルドツールが約 250〜275 MB ダウンロードされます。
  • Edge、Bun/Deno、WASI、ブラウザー向けのビルドは、ソケットやプロセスを使わずシングルスレッドで動作します。
  • コンパイラーには Node 24 以降が必要です。代替ランタイムは Bun または Deno のみです。

収録されている特集

トピック

よくある質問

lasm とは?
通常のLeanプログラムをWebAssemblyに変換し、Node、サーバーレス、エッジ、WASI、ブラウザー向けに出力するLean 4のAOTコンパイラー。 Lasmは通常のLean 4プログラムを事前コンパイルしてWebAssemblyに変換し、同じLeanコードベースをNodeサーバー、サーバーレスまたはエッジ関数、WASIまたはFastlyモジュール、ブラウザーアプリとして実行できるようにします。npmで提供され、Leanとビルドツールが同梱されているため、開発者がインストールする必要があるのはNode、Bun、またはDenoだけです。
lasm は無料で使えますか?ライセンスは?
lasm は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
lasm は今もメンテナンスされていますか?
活発にメンテナンス中。lasm の最終コミットは 2026年11月5日 です。
lasm は何に使えますか?
HonoやExpressを使うNode REST APIをLeanで作成する。 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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト