/examples

A collection of AssemblyScript examples.

Primary LanguageWebAssemblyMIT LicenseMIT

AssemblyScript Examples

Actions Status

Instructions

This repository contains one example per directory. All examples can be obtained by cloning the repository:

$> git clone https://github.com/AssemblyScript/examples.git
$> cd examples

Afterwards, select the example you'd like to run and follow the instructions in its README file.

Low-level perspective

The following examples make use of AssemblyScript's low-level capabilities, i.e. to essentially write WebAssembly with a nicer syntax.

  • Conway's Game Of Life (demo)
    An implementation of the game of life with slight modifications. Updates an image buffer in memory, that is then presented on a canvas.

  • Mandelbrot Set (demo)
    Computes 2048 offsets of a color gradient in memory, line by line, and presents the set using the gradient's actual colors, as computed on the JavaScript side, on a canvas.

  • Interference effect (demo)
    Colin Eberhardt's and Ben Smith's WebAssembly interference effect, if it was written in AssemblyScript.

High-level perspective

These examples cover slightly higher level aspects, like working with managed objects or interfacing with them.

  • N-body system (demo)
    This is actually a benchmark - visualizing it just so happened.

  • Loader
    Utilizes the loader to perform various common tasks on the WebAssembly/JavaScript boundary, like passing along strings and arrays between both worlds.

Libraries

Various WebAssembly or AssemblyScript features as a library.

  • i64
    Exposes WebAssembly's i64 operations to JavaScript using 32-bit integers (low and high bits).

  • libm
    Exposes AssemblyScript's math routines for double and single precision as a library.

Features

General examples showing how to utilize specific AssemblyScript features.

  • Browser SDK (demo)
    Shows how to use the browser SDK to run the AssemblyScript compiler in the browser.

  • Compiler transforms
    An example of using compiler transforms to hook into the compilation process.

Additional resources

  • Wasm By Example
    A concise, hands-on introduction to WebAssembly using code snippets and annotated example programs. If you "learn best by doing", or just need a good starting point for a concept, this is the place for you.

  • Built with AssemblyScript
    A list of more sophisticated open source projects using AssemblyScript.