assemblyscript README

The project's README from github.com/AssemblyScript/assemblyscript. As one markdown file: README.md.

AssemblyScript logo

Test status Publish status npm compiler version Discord online #StandWithUkraine

AssemblyScript compiles a variant of TypeScript (basically JavaScript with types) to WebAssembly using Binaryen. It generates lean and mean WebAssembly modules while being just an npm install away.

About  ·  Getting started  ·  Examples  ·  Built with AssemblyScript


Contributors

Contributor logos

Thanks to our sponsors!

Most of the maintainers and contributors do this open source work in their free time. If you use AssemblyScript for a serious task or plan to do so, and you'd like us to invest more time on it, please donate to our OpenCollective. By sponsoring this project, your logo will show up below. Thank you so much for your support!

Sponsor logos

Development instructions

A development environment can be set up by cloning the repository:

git clone https://github.com/AssemblyScript/assemblyscript.git
cd assemblyscript
npm install
npm link

The link step is optional and makes the development instance available globally. The full process is documented as part of the repository:

assemblyscript (AssemblyScript/assemblyscript)

Searching Database…

Что это такое?AssemblyScript — это язык программирования, похожий на TypeScript, который компилируется в WebAssembly. Он позволяет писать .wasm-модули в привычном синтаксисе JS/TS вместо Rust или C.
Так это язык, компилятор или библиотека, которую я подключаю к своему коду?Это язык вместе с компилятором и сопутствующими инструментами, распространяемый как npm-пакет: вы запускаете компилятор ('asc') на этапе сборки, он создаёт .wasm-файлы, которые ваше приложение затем загружает и выполняет во время работы.
Как создать новый проект на AssemblyScript?Установите компилятор из npm ('npm install -g assemblyscript') и создайте стартовый проект командой 'npx asinit .' — она сгенерирует файл конфигурации и примеры исходников, на основе которых можно строить проект.
Что должно быть установлено, чтобы им можно было пользоваться?Node.js и npm — инструментам нужны Node 20+ и npm 10+. В качестве бэкенда для оптимизации WebAssembly подтягивается Binaryen, но всё ставится автоматически через npm.
Могу ли я взять свой существующий код на TypeScript или JavaScript и скомпилировать его напрямую в wasm?Нет, не в таком виде — AssemblyScript лишь похож на TypeScript, но это не весь TypeScript: код нужно писать с расчётом на статические типы, совместимые с wasm, поэтому обычный нетипизированный JavaScript не скомпилируется.
Где вообще исполняется полученный WebAssembly?Везде, где поддерживается WebAssembly — в современных браузерах и в отдельных wasm-рантаймах. Сам компилятор работает на Node.js 20+, так что собрать проект можно на любом компьютере разработчика, где есть Node.
Почему стоит использовать AssemblyScript, а не писать на Rust или C для WebAssembly?Главное преимущество — знакомый синтаксис: веб-разработчики, знающие TypeScript, могут создавать быстрые оптимизированные .wasm-бинарники, не изучая системный язык и его инструменты сборки.
Что такое Binaryen и почему компилятор от него зависит?Binaryen — это набор инструментов для компиляции и оптимизации WebAssembly, который AssemblyScript использует как бэкенд. Он ставится автоматически как npm-зависимость вместе с компилятором.
Можно ли бесплатно использовать его в серьёзных проектах, и как обстоит дело с поддержкой?Да — это проект с открытым исходным кодом под лицензией Apache-2.0. Сопровождающие и контрибьюторы занимаются им в свободное время и просят команды, использующие его в серьёзных задачах, поддержать проект донатами через OpenCollective, где спонсорам показывают их логотипы.
Size
163.2 MB
Stars
18K
Age
9y
Commits · 90 Days