|Paradigm||Multi-paradigm: functional, generic, imperative, object-oriented|
|Designed by||Daniel Wirtz, Max Graey|
|Developer||The AssemblyScript Project|
0.18.29 / April 28, 2021
|License||Apache License 2.0|
|File formats||Text, Unicode (source)|
.wasm binary format (object)
|asc (AssemblyScript compiler)|
clz (count leading zero bits),
ctz (count trailing zero bits), and
popcnt (population count), used in applications such as encryption and cryptographic libraries.
The AssemblyScript compiler asc is based on Binaryen, a back-end compiler toolchain developed by Alon Zakai that compiles to WebAssembly and is a component of Emscripten (which Zakai also developed). The asc compiler and other tooling are available via the npm package manager.
While WebAssembly was originally designed for execution within Web browsers, the development of WASI (WebAssembly System Interface), a community specification for a standard API that allows WebAssembly programs access to system calls and other operating system functions, has led to the development of WebAssembly runtime environments from projects such as Wasmtime and Wasmer that allow WebAssembly, and code written in languages such as AssemblyScript that can compile to it, to run in non-Web environments as well.
As of March 2021,[update] approximately 3000 projects hosted on GitHub are written, either wholly or partially, in AssemblyScript, with roughly 5000 downloads of the AssemblyScript compiler per week via npm.
Lead Emscripten developer Alon Zakai has characterized AssemblyScript as being “designed with WebAssembly and code size in mind. It’s not an existing language that we are using for a new purpose, but it’s a language designed for WebAssembly. It has great
wasm-opt integration—in fact, it’s built with it—and it’s very easy to get good code size.”
Norwegian musician Peter Salomonsen, in a 2020 WebAssembly Summit talk titled, “WebAssembly Music,” demonstrated the use of AssemblyScript for real-time compilation to WebAssembly in live electronic music synthesis, saying, “I chose AssemblyScript because it has high-level readability and low-level control; it’s like a high-level language, but you get that low-level feeling, and you can even write direct WebAssembly intrinsics if you want to.”
Aaron Turner, a senior engineer at Fastly, a cloud computing services provider that uses WebAssembly for the company’s [email protected] serverless compute environment, in a review of AssemblyScript wrote:
However, Turner went on to cite the language’s relative newness and thus its lack of some features available in larger, more complex and established programming languages as potential shortcomings of the language.
Daniel Wirtz (@dcodeIO) - Author of AssemblyScript
@dcodeIO [Daniel Wirtz] and @MaxGraey [Max Graey]—they’re the main two developers of AssemblyScript
AssemblyScript/assemblyscript is licensed under the Apache License 2.0
Edited: 2021-06-18 11:02:24