Repolode
Millillion

Millillion/lasm

AOT-компилятор Lean 4, который превращает обычные программы на Lean в WebAssembly для Node, serverless-, edge-, WASI- и браузерных сред.

Звёзды
103
Форки
7
Открытые issues
1
Последний коммит
5 часов назад

Что это?

Lasm заранее компилирует обычные программы на Lean 4 в WebAssembly, позволяя запускать одну и ту же кодовую базу Lean как сервер Node, serverless- или edge-функцию, модуль WASI или Fastly либо браузерное приложение. Пакет доступен в npm и включает Lean и инструменты сборки, поэтому разработчикам достаточно установить Node, Bun или Deno.

Lasm обеспечивает взаимодействие с JavaScript и npm: для этого в Lean добавляется импорт и по одному объявлению на вызываемую функцию. Также доступны библиотеки Lean для HTTP (Lasm.Fetch), браузерного UI с корректностью diff, доказанной формально (Lasm.UI), типизированных клиент-серверных API (Lasm.RPC) и доступа к DOM (Lasm.Web). Поскольку код написан на Lean, свойства развёртываемого кода можно записать в виде теорем и проверить во время сборки. Один из ключевых примеров — приложение RealWorld под названием Conduit, включающее 117 доказанных теорем о логике авторизации, пагинации и валидации.

Среди целевых платформ развёртывания — AWS Lambda, Vercel, Netlify, Azure Functions, Google Cloud Functions, Cloudflare Workers, Deno Deploy, Fastly Compute, а также обычные сборки для WASI и браузеров. Программы не могут выполнять elaboration или вычислять Lean во время работы; сборки для edge, Bun/Deno, WASI и браузеров работают в одном потоке, без сокетов и процессов.

Ключевые возможности

  • 01Заранее компилирует обычные программы на Lean 4 в WebAssembly.
  • 02Собирает приложения для Node, AWS Lambda, Vercel, Netlify, Cloudflare Workers, Deno Deploy, Fastly, WASI и браузеров.
  • 03Вызывает пакеты npm и функции JavaScript из Lean с помощью однострочных объявлений @[js].
  • 04Предоставляет библиотеки Lean для HTTP, браузерного UI, типизированного клиент-серверного RPC и доступа к DOM.
  • 05Устанавливается через npm вместе с Lean и инструментами сборки; шаблоны проектов доступны через npm create.

Сценарии использования

  • Написание REST API для Node на Lean с использованием Hono или Express.
  • Развёртывание функции на Lean на serverless- или edge-платформах.
  • Создание одностраничного браузерного приложения на Lean с серверным рендерингом.
  • Доказательство инвариантов, например правил авторизации в веб-бэкенде.

Быстрый старт

  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 МБ Lean и инструментов сборки.
  • Сборки для Edge, Bun/Deno, WASI и браузеров работают в один поток, без сокетов и процессов.
  • Для компилятора требуется Node 24 или новее; единственные альтернативные среды выполнения — Bun и Deno.

В подборках

Темы

Частые вопросы

Что такое lasm?
AOT-компилятор Lean 4, который превращает обычные программы на Lean в WebAssembly для Node, serverless-, edge-, WASI- и браузерных сред. Lasm заранее компилирует обычные программы на Lean 4 в WebAssembly, позволяя запускать одну и ту же кодовую базу Lean как сервер Node, serverless- или edge-функцию, модуль WASI или Fastly либо браузерное приложение. Пакет доступен в npm и включает Lean и инструменты сборки, поэтому разработчикам достаточно установить Node, Bun или Deno.
lasm можно использовать бесплатно? Какая у него лицензия?
lasm распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
lasm всё ещё поддерживается?
Активно поддерживается. Последний коммит в lasm — 7 нояб. 2026 г..
Для чего можно использовать lasm?
Написание REST API для Node на Lean с использованием Hono или Express. Развёртывание функции на Lean на serverless- или edge-платформах. Создание одностраничного браузерного приложения на Lean с серверным рендерингом. Доказательство инвариантов, например правил авторизации в веб-бэкенде.
Как установить 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 проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты