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。这样你就能用熟悉的 JS/TS 语法来写 .wasm 模块,不用去学 Rust 或 C。
那它到底是一门语言、一个编译器,还是我导入代码里用的库?它是一门语言,连同它的编译器工具链一起以 npm 包的形式发布:你在构建步骤里运行编译器('asc')生成 .wasm 文件,然后你的应用在运行时加载并执行这些文件。
怎么新建一个 AssemblyScript 项目?先从 npm 安装编译器('npm install -g assemblyscript'),再用 'npx asinit .' 生成一个入门项目,它会创建一个配置文件和示例源码,供你在此基础上开发。
用之前我需要先装好哪些东西?Node.js 和 npm——这套工具链要求 Node 20+ 和 npm 10+。它会引入 Binaryen 作为 WebAssembly 优化后端,不过所有东西都会通过 npm 自动安装好。
我现有的 TypeScript 或 JavaScript 代码能直接编译成 wasm 吗?不能直接拿来用——AssemblyScript 是一门类似 TypeScript 的语言,但不是完整的 TypeScript:代码必须按照 wasm 兼容的静态类型来写,所以普通的无类型 JavaScript 是编译不过的。
生成的 WebAssembly 实际能在哪里运行?只要支持 WebAssembly 的地方都能跑——包括现代浏览器和独立的 wasm 运行时。编译器本身则运行在 Node.js 20+ 上,所以任何装了 Node 的开发机都能用它来构建。
为 WebAssembly 写代码时,为什么选 AssemblyScript 而不是 Rust 或 C?它的卖点就是语法熟悉:会 TypeScript 的网页开发者不用去学一门系统级语言和它那套构建工具,就能生成快速、优化过的 .wasm 二进制文件。
Binaryen 是什么?为什么编译器依赖它?Binaryen 是一个 WebAssembly 编译和优化工具包,AssemblyScript 把它当作后端来用。你安装编译器时,它会作为 npm 依赖自动一起装上。
正式项目可以免费使用吗?它是怎么维护的?可以——它基于 Apache-2.0 协议开源。维护者和贡献者都是利用业余时间做这件事,他们希望把项目用于正式业务的团队通过 OpenCollective 捐款支持,赞助者的标志会得到展示。
Size
163.2 MB
Stars
18K
Age
9y
Commits · 90 Days