# Built with AssemblyScript
A place for all things AssemblyScript. Feel free to add your projects and applications.
# Benchmarks
- webassembly-wave (opens new window) (demo (opens new window))
JavaScript vs WebAssembly performance comparison - wave equation demo (JS, C++, AssemblyScript). - Eratosthenes (opens new window)
WebAssembly examples which calculate prime by Sieve of Eratosthenes. - WasmBoy Benchmark (opens new window)
Benchmarking WasmBoy emulator. - wasm-n-body (opens new window)
WebAssembly N-body simulation benchmark (use 1000 bodies compare to original). - as-benchmarks (opens new window) (demo (opens new window))
A set of computational benchmarks (JS, AssemblyScript). - Sort Colors Benchmark (opens new window) (demo (opens new window))
Bench of sorting random colors by hue component on 2d canvas. - Wasm Mandelbrot (opens new window) (demo (opens new window))
A mandelbrot rendered using a variety of WebAssembly tools (emscripten, AssemblyScript, asm.js, etc ...)
# Blockchain
- ASContract / subscript (opens new window)
Substrate smart contract framework written in AssemblyScript. - eWasm / Biturbo (opens new window)
Eth1 EE using Turboproofs. - ewasm / scout.ts (opens new window)
Scout is a Ethereum 2.0 Phase 2 execution prototyping engine (AssemblyScript Port). - NearProtocol / near-sdk-as (opens new window)
AssemblyScript tools for writing smart contracts for NearProtocol. - GraphProtocol / graph-ts (opens new window)
TypeScript/AssemblyScript library for writing mappings for The Graph (opens new window). - ChainSafe / as-sha256 (opens new window)
AssemblyScript implementation of SHA256 for Lodestar (opens new window). - ParityTech / srml-contracts-waterfall (opens new window)
Collection of simple Substrate smart contract examples written in Rust and AssemblyScript and tests for Substrates SRML Contracts module.
# Build Tools
- Zwitterion (opens new window)
A web dev server that lets you import anything*. - rollup-plugin-assemblyscript (opens new window)
A Rollup plugin that allows you to import AssemblyScript files and compiles them on-the-fly. - as-loader (opens new window)
A webpack loader for AssemblyScript - visitor-as (opens new window)
Tools for creating compiler transformers.
# Demoscene
- Hoofdkantoor WASM Demo (opens new window)
A demo built with AssemblyScript (also TS and Web Audio API). It's an homage to the old school Demoscene of the early 90s.
# Editors
- Fastly Terrarium (opens new window)
A compilation toolchain and sandbox to run WebAssembly server-side, with native support for AssemblyScript. - NEAR Protocol Examples (opens new window)
Examples that use GitPod (opens new window) to develop and deploy distributed web apps using NEAR smart contracts authored in AssemblyScript. - Iodide Notebook (opens new window)
Experimental tool for scientific communication and exploration on the web (more (opens new window)).
# Formatter
- assemblyscript-prettier (opens new window)
Prettier plugin for assemblyscript to resolve the incompatible part of ts and as syntax
# Emulators
- wasmBoy (opens new window) (demo (opens new window))
Game Boy / Game Boy Color Emulator Library, written for WebAssembly using AssemblyScript. - Atari 2600 (opens new window)
An Atari 2600 emulator written in AssemblyScript compiled to WebAssembly. - as-spectrum-engine (opens new window)
AssemblyScript implementation of a ZX Spectrum emulator engine.
# Games
- Chess (opens new window) (play (opens new window))
A free and open source chess game using AssemblyScript and React. - Gomoku WASM (opens new window) (play (opens new window))
A Gomoku game implements with WebAssembly using as2d (opens new window). - 2d-videogame-in-assemblyscript (opens new window)
Demo 2D videogame in AssemblyScript. - fiberoptic-game (opens new window)
Web game produced with AssemblyScript for js13k 2018.
# Graphics / Game Frameworks
- as2d (opens new window)
[Deprecated] Bring the power of the CanvasRenderingContext2D prototype to AssemblyScript. - koora (opens new window)
Assemblyscript 3D Game Framework. - as-smallpt (opens new window)
Port of C++ smallpt, a path tracing renderer. - Babylon.Font (opens new window)
Create 3d text in BabylonJS. - Path-Finder (opens new window)
AssemblyScript NavMesh Path Finder. - seam-carving-as (opens new window)
Seam Carving experiments with AssemblyScript. - ASWebGLue (opens new window)
WebGL bindings for AssemblyScript. - GLAS (opens new window)
WebGL in AssemblyScript, port of Three.js (opens new window) to AssemblyScript.
# Data Serialization / Deserialization
- karmem (opens new window)
Karmem is a fast binary serialization format, faster than Google Flatbuffers and optimized for WebAssembly languages. - as-proto (opens new window)
Protobuf encoder/decoder library. - as-json (opens new window)
JSON encoder / decoder. - as-msgpack (opens new window)
MessagePack package for AssemblyScript. - assemblyscript-bson (opens new window)
BSON encoder / decoder. - assemblyscript-json (opens new window)
JSON encoder / decoder. - AS-LZMA (opens new window)
LZMA Decoder written in AssemblyScript.
# Crypto (non-blockchain)
- superfasthash (opens new window)
An implementation of the SuperFastHash non-cryptographic hashing algorithm in JavaScript and WebAssembly. - WASM-Crypto (opens new window)
An AssemblyScript set of cryptographic primitives for building authentication and key exchange protocols. - rabin-wasm (opens new window)
Rabin fingerprinting implemented in WASM (used by js-ipfs). - xoroshiro128starstar (opens new window)
An AssemblyScript port of xoroshiro128starstar.c
# Fixed & Arbitrary Precision Arithmetics
- as-bignum (opens new window)
Fixed length big numbers likeu128
,i256
,fp128
and etc for AssemblyScript. - as-big (opens new window)
An AssemblyScript library for arbitrary-precision decimal arithmetic. - as-bigint (opens new window)
BigInt is an AssemblyScript class for math with arbitrarily large integers. - as-bignumber (opens new window)
An AssemblyScript class for math with arbitrary-precision decimal and integer numbers.
# Language Extensions and Types
- as-container (opens new window)
AssemblyScript version of Rust Option<T> and Result<O, E> etc. - as-variant (opens new window)
Variant (aka Any) data type for AssemblyScript.
# Bindings
- asdom (opens new window)
DOM bindings for AssemblyScript. - ecmassembly (opens new window)
Bindings for common ECMAScript/JavaScript APIs that require host scheduling (setTimeout
,Promise
, etc). - wasmbind (opens new window)
Work with AssemblyScript memory and classes from Python. - as-bind (opens new window)
[Deprecated] Isomorphic library to handle passing high-level data structures between AssemblyScript and JavaScript, built on top of the AssemblyScript loader.
# Other Libraries
- ASTL (opens new window)
[Deprecated] Migration project from C++ STL (Standard Template Library) to AssemblyScript. Containers, iterators, algorithms and functors are supported. - Levenshtein Wasm (opens new window)
An experimental lightning-fast Wasm-compiled levenshtein library. - as-wasi (opens new window)
An AssemblyScript API layer for WASI system calls. - galois (opens new window)
Arithmetic and polynomial operations in finite fields. - merkle (opens new window)
Merkle tree and other data structures. - pixelmatch-asc (opens new window)
Pixel level image comparison library. - wasmer-as (opens new window)
Helpers for dealing with assemblyscript memory inside wasmer-runtime. - wasmer3-as (opens new window)
Examples of lift string and lower string in wasmer 3.0 - io-devices-lib (opens new window)
Library for interacting with the Wasmer Experimental IO Devices. - as-string-sink (opens new window)
An efficient dynamically sized string buffer (aka String Builder) for AssemblyScript.
# Embedded / IoT
- wasm3-arduino (opens new window)
Usage example with wasm3 which run on Arduino, PlatformIO, Particle. - Wasm3_RGB_Lamp (opens new window)
Animating an RGB lamp, using WebAssembly (AssemblyScript). - wasm-arduino-wifi (opens new window)
Example how update WebAssembly via WiFi on arduino.
# Testing / Benchmarking
- as-tral (opens new window)
AssemblyScript benchmarking library inspired by criterion.rs. (Required AssemblyScript >= 0.20) - as-pect (opens new window)
A test framework inspired by jest. (Required AssemblyScript <= 0.19) - envy (opens new window)
A test framework spiritual successor of as-pect. (Required AssemblyScript >= 0.20)
# Project Templates
- worker-assemblyscript-template (opens new window)
A Cloudflare wrangler template for an AssemblyScript worker.
# Applications
- wasm-matrix (opens new window)
A Matrix effect in your terminal using AssemblyScript and WASI, deployed to WAPM. - WebAssembly music experiment (opens new window)
A live coding environment in the browser for sequencing music with javascript and synthesizing instruments in AssemblyScript. Demonstrates compiling AssemblyScript directly in the browser, and live hot-swapping of webassembly modules. - WireWorld (opens new window) (demo (opens new window))
The Wireworld Computer in Javascript/Canvas.