|
1 |
| - AssemblyScript |
2 |
| -================= |
3 |
| - |
4 |
| -[](https://github.com/AssemblyScript/assemblyscript/actions) [](https://www.npmjs.com/package/assemblyscript) [](https://www.npmjs.com/package/assemblyscript) |
5 |
| - |
6 |
| -**AssemblyScript** compiles a strict subset of [TypeScript](http://www.typescriptlang.org) (basically JavaScript with types) to [WebAssembly](http://webassembly.org) using [Binaryen](https://github.com/WebAssembly/binaryen). It generates lean and mean WebAssembly modules while being just an `npm install` away. |
7 |
| - |
8 |
| -Check out the [documentation](https://docs.assemblyscript.org) or try it out in [WebAssembly Studio](https://webassembly.studio)! |
9 |
| - |
10 |
| ---- |
11 |
| - |
12 |
| -<h3 align="center">Our Sponsors</h3> |
13 | 1 | <p align="center">
|
14 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/0/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/0/avatar.svg"></a> |
15 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/1/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/1/avatar.svg"></a> |
16 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/2/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/2/avatar.svg"></a> |
17 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/3/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/3/avatar.svg"></a> |
18 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/4/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/4/avatar.svg"></a> |
19 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/5/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/5/avatar.svg"></a> |
20 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/6/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/6/avatar.svg"></a> |
21 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/7/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/7/avatar.svg"></a> |
22 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/8/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/8/avatar.svg"></a> |
23 |
| - <a href="https://opencollective.com/assemblyscript/tiers/sponsor/9/website" target="_blank"><img src="https://opencollective.com/assemblyscript/tiers/sponsor/9/avatar.svg"></a> |
| 2 | + <a href="https://assemblyscript.org" target="_blank" rel="noopener"><img width="100" src="https://avatars1.githubusercontent.com/u/28916798?s=200&v=4" alt="AssemblyScript logo"></a> |
24 | 3 | </p>
|
25 |
| -<br /> |
26 |
| -<h3 align="center">Our Backers</h3> |
27 |
| -<p align="center"> |
28 |
| - <a href="https://opencollective.com/assemblyscript#backers" target="_blank"><img src="https://opencollective.com/assemblyscript/backer.svg?avatarHeight=44" /></a> |
29 |
| -</p> |
30 |
| - |
31 |
| -The core team members and most 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](https://opencollective.com/assemblyscript). By sponsoring this project, your logo will show up above. Thank you so much for your support! |
32 |
| - |
33 |
| ---- |
34 | 4 |
|
35 |
| -Motivation |
36 |
| ----------- |
| 5 | +<h1 align="center">AssemblyScript Compiler</h1> |
37 | 6 |
|
38 |
| -> You are now able to write WebAssembly, without learning a new language, and harness all these benefits WebAssembly might offer you. I think that is kind of powerful. [...] It [AssemblyScript] is absolutely usable, and very enjoyable! - Surma, [WebAssembly for Web Developers (Google I/O ’19)](https://youtu.be/njt-Qzw0mVY) (May 8th, 2019) |
39 |
| -
|
40 |
| -> AssemblyScript was frictionless. Not only does it allow you to use TypeScript to write WebAssembly, [...] it also produces glue-free WebAssembly modules that are very small with decent performance. – Surma, [Replacing a hot path in your app's JavaScript with WebAssembly](https://developers.google.com/web/updates/2019/02/hotpath-with-wasm) (Feb 16, 2019) |
| 7 | +<p align="center"> |
| 8 | + <a href="https://github.com/AssemblyScript/assemblyscript/actions"><img src="https://github.com/AssemblyScript/assemblyscript/workflows/Test/badge.svg?branch=master&event=push" alt="Actions Status" /></a> |
| 9 | + <a href="https://www.npmjs.com/package/assemblyscript"><img src="https://img.shields.io/npm/v/assemblyscript.svg?color=0074C1" alt="npm package" /></a> |
| 10 | + <a href="https://www.npmjs.com/package/assemblyscript"><img src="https://img.shields.io/npm/v/assemblyscript/nightly.svg?color=0074C1" alt="npm package (nightly)" /></a> |
| 11 | +</p> |
41 | 12 |
|
42 |
| -> Perhaps the fundamental issue [to get a small .wasm file] is that JavaScript is the only language for which the Web runtime is a perfect fit. Close relatives that were designed to compile to it, like TypeScript, can be very efficient as well. But languages like C, C++, Rust, and so forth were not originally designed for that purpose. – Alon Zakai, [Small WebAssembly Binaries with Rust + Emscripten](https://kripken.github.io/blog/binaryen/2018/04/18/rust-emscripten.html) (Apr 18, 2018) |
| 13 | +<p align="justify">AssemblyScript compiles a strict variant of <a href="http://www.typescriptlang.org">TypeScript</a> (basically JavaScript with types) to <a href="http://webassembly.org">WebAssembly</a> using <a href="https://github.com/WebAssembly/binaryen">Binaryen</a>. It generates lean and mean WebAssembly modules while being just an <code>npm install</code> away.</p> |
43 | 14 |
|
44 |
| -> JavaScript's heyday as the only browser language is over, but most web developers are used to writing JavaScript, and learning a new syntax just to get access to WebAssembly is not (always) ideal. If only there was something in to bridge the gap… – Jani Tarvainen, [TypeScript is the bridge between JavaScript and WebAssembly](https://malloc.fi/typescript-bridge-javascript-webassembly) (Feb 20, 2018) |
| 15 | +<p align="center"> |
| 16 | + <a href="https://assemblyscript.org">About</a> · |
| 17 | + <a href="https://assemblyscript.org/introduction.html">Introduction</a> · |
| 18 | + <a href="https://assemblyscript.org/quick-start.html">Quick start</a> · |
| 19 | + <a href="https://assemblyscript.org/development.html">Development instructions</a> |
| 20 | +</p> |
45 | 21 |
|
46 |
| -> I do think [compiling TypeScript into WASM] is tremendously useful. It allows JavaScript developers to create WASM modules without having to learn C. – Colin Eberhardt, [Exploring different approaches to building WebAssembly modules](http://blog.scottlogic.com/2017/10/17/wasm-mandelbrot.html) (Oct 17, 2017) |
| 22 | +<h2 align="center">Contributors</h2> |
47 | 23 |
|
48 |
| -Further resources |
49 |
| ------------------ |
| 24 | +<p align="center"> |
| 25 | + <a href="https://assemblyscript.org/#contributors"><img src="https://assemblyscript.org/contributors.svg" alt="Contributor logos" /></a> |
| 26 | +</p> |
50 | 27 |
|
51 |
| -* [Documentation](https://docs.assemblyscript.org)<br /> |
52 |
| - Introduction, quick start, examples and general usage instructions. |
| 28 | +<h2 align="center">Thanks to our sponsors!</h2> |
53 | 29 |
|
54 |
| -* [Development instructions](https://docs.assemblyscript.org/details/development)<br /> |
55 |
| - How to set up a development environment (to submit a pull request). |
| 30 | +<p align="justify">Most of the core team members and most 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, <a href="https://opencollective.com/assemblyscript/donate" target="_blank" rel="noopener">please donate</a> to our <a href="https://opencollective.com/assemblyscript" target="_blank" rel="noopener">OpenCollective</a>. By sponsoring this project, your logo will show up below. Thank you so much for your support!</p> |
56 | 31 |
|
57 |
| -* [Project governance](https://github.com/AssemblyScript/working-group)<br /> |
58 |
| - Discussions, goals, roadmaps, assets, etc. related to development and project organization. |
| 32 | +<p align="center"> |
| 33 | + <a href="https://assemblyscript.org/#sponsors"><img src="https://assemblyscript.org/sponsors.svg" alt="Sponsor logos" /></a> |
| 34 | +</p> |
0 commit comments