assemblyscript - A TypeScript to WebAssembly compiler 🚀

  •        41

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

http://assemblyscript.org
https://github.com/AssemblyScript/assemblyscript

Dependencies:

@protobufjs/utf8 : ^1.1.0
binaryen : 49.0.0-nightly.20180731
glob : ^7.1.2
long : ^4.0.0

Tags
Implementation
License
Platform

   




Related Projects

lucet - Lucet, the Sandboxing WebAssembly Compiler.

  •    Rust

Lucet is a native WebAssembly compiler and runtime. It is designed to safely execute untrusted WebAssembly programs inside your application. Check out our announcement post on the Fastly blog.

wasmBoy - Gameboy / Gameboy Color Emulator written for Web Assembly using AssemblyScript

  •    Javascript

Project is still < 1.0.0. Most games are playable, but the emulator is still not very accurate. Expect bugs. Project is still < 1.0.0. Most games are playable, but the emulator is still not very accurate. Expect bugs.

wasm - Haskell compiler infastructure for WebAssembly

  •    WebAssembly

A WebAssembly AST, parser, and assembler in Haskell for use in functional compiler backends targeting WebAssembly. Warning, still a big work in progress.

binaryen - Compiler infrastructure and toolchain library for WebAssembly, in C++

  •    WebAssembly

Consult the contributing instructions if you're interested in participating. As a result, you might notice that round-trip conversions (wasm => Binaryen IR => wasm) change code a little in some corner cases.

schism - A self-hosting Scheme to WebAssembly compiler

  •    Scheme

Schism is an experimental self-hosting compiler from a subset of R6RS Scheme to WebAssembly. This is not an officially supported Google product.


webassembly - A minimal toolkit and runtime to produce and run WebAssembly modules.

  •    C

An experimental, minimal toolkit and runtime on top of node to produce and run WebAssembly modules. To run compiled WebAssembly modules, you'll either need a recent version of your browser with WebAssembly enabled or node.js 8 - but you probably already know that. For development, node.js 6 upwards is sufficient.

awesome-wasm - 😎 Curated list of awesome things regarding WebAssembly (wasm) ecosystem.

  •    

Collection of awesome things regarding WebAssembly (wasm) ecosystem. Please read the contribution guidelines if you want to contribute.

walt - :zap: Walt is a JavaScript-like syntax for WebAssembly text format :zap:

  •    Javascript

⚡️ Walt is an alternative syntax for WebAssembly text format. It's an experiment for using JavaScript syntax to write to as 'close to the metal' as possible. It's JavaScript with rules. .walt files compile directly to WebAssembly binary format. 🚀 Try it out in the Walt Explorer.

wasm-and-rust - WebAssembly and Rust: A Web Love Story

  •    

You can check out about:config (Firefox) or chrome://flags/ (Chrome) and make sure wasm related things are enabled. WebAssembly or WASM is a low-level bytecode format for in-browser client-side scripting, evolved from JavaScript. Its initial aim is to support compilation from C and C++, though other source languages such as Rust are also supported.

wasm-pack - 📦✨ your favorite rust -> wasm workflow tool!

  •    Rust

This tool seeks to be a one-stop shop for building and working with rust- generated WebAssembly that you would like to interop with JavaScript, in the browser or with Node.js. wasm-pack helps you build and publish rust-generated WebAssembly to the npm registry to be used alongside any other javascript package in workflows that you already use, such as webpack or greenkeeper. We generate a wasm-pack.log file if wasm-pack errors on you, and you can customize the log verbosity using the verbosity flag.

thinscript - A low-level programming language inspired by TypeScript

  •    C

ThinScript is an experimental programming language that compiles to JavaScript, WebAssembly, and C. It's meant to be a thin layer on top of WebAssembly that makes it easier to work with: no dependencies and fast compile times. The syntax is inspired by TypeScript and the compiler is open source and bootstrapped (it can compile itself). This is still an experiment and isn't intended for real use yet. The biggest issue is that the generated code currently doesn't delete anything (garbage collection is planned but not yet implemented). Also the WebAssembly specification is still being developed and the current binary format will stop working when WebAssembly is officially released.

webassemblyjs - Toolchain for WebAssembly

  •    Javascript

See WebAssembly.js.org for more information. Some packages rely on Node's Buffer which isn't available in other environments. We recommend you to add https://github.com/feross/buffer in your building process.

mono-wasm

  •    Javascript

This project is a proof-of-concept aiming at building C# applications into WebAssembly, by using Mono and compiling/linking everything statically into one .wasm file that can be easily delivered to browsers. The process does not use Emscripten (or Binaryen) but instead uses the experimental WebAssembly backend of LLVM with clang and lld to generate the final .wasm code. The goal is to use as few dependencies as possible. At the moment the only dependencies are LLVM, clang and lld trunk.

design - ewasm Design Overview and Specification

  •    

This repository contains documents describing the design and high-level overview of eWASM. Expect the contents of this repository to be in flux: everything is still under discussion. WebAssembly (or Wasm as a contraction) is a new, portable, size- and load-time-efficient format. WebAssembly aims to execute at native speed by taking advantage of common hardware capabilities available on a wide range of platforms. WebAssembly is currently being designed as an open standard by a W3C Community Group.

wasmjit - Kernel Mode WebAssembly Runtime for Linux

  •    C

Wasmjit is a small embeddable WebAssembly runtime. Its core is written in C90 and is easily portable to most environments. It also includes a host environment for running in user-space on POSIX systems. This is useful for running WebAssembly modules without having to run an entire browser.

asm-dom - A minimal WebAssembly virtual DOM to build C++ SPA (Single page applications)

  •    C++

asm-dom is a minimal WebAssembly virtual DOM to build C++ SPA (Single page applications). You can write an entire SPA in C++ and compile it to WebAssembly (or asmjs as fallback) using Emscripten, asm-dom will call DOM APIs for you. This will produce an app that aims to execute at native speed by taking advantage of common hardware capabilities, also, you can use your C/C++ code without any change, you haven't to create a binding layer to use it (as we have to do if we want to use a C++ lib from JS). Basically we are creating an app in C++ that call javascript if needed instead of the opposite. You can write only once in C++ and share as much code as possible with desktop/mobile apps and web site. If you want to learn more about performance, please see this. asm-dom is a low-level virtual DOM library. It is unopinionated with regards to how you should structure your application.

asterius - A Haskell to WebAssembly compiler

  •    WebAssembly

A Haskell to WebAssembly compiler. Project status: alpha, in active development, some simple examples already work. See the documentation for further instructions.

wasm-loader - :sparkles: WASM webpack loader

  •    Javascript

This is an experimental feature and thus not activated by default. Everything else in the add.wasm binary will be removed.

ecmascript_simd - SIMD numeric type for EcmaScript

  •    Javascript

SIMD.js has been taken out of active development in TC39 and removed from Stage 3, and is not being pursued by web browsers for implementation. SIMD operations exposed to the web are under active development within WebAssembly, with operations based on the SIMD.js operations. With WebAssembly in advanced development or shipping in multiple browsers, it seems like an adequate vehicle to subsume asm.js use cases, which are judged to be the broader cases. Although some developers have expressed interest in using SIMD.js outside of asm.js, implementers have found that implementing and optimizing for this case reliably creates a lot of complexity, and have made the decision to focus instead on delivering WebAssembly and SIMD instructions in WASM.

wagon - wagon, a WebAssembly-based Go interpreter, for Go.

  •    Go

wagon is a WebAssembly-based interpreter in Go, for Go. NOTE: wagon requires Go >= 1.9.x.