Skip to content

tomusdrw/anan-as

Repository files navigation

🍍 anan-as

AssemblyScript implementation of the JAM PVM (64-bit).

Demo

Todo

Why?

Useful where?

Installation

npm install @fluffylabs/anan-as

Usage

The package exports multiple builds to suit different use cases:

ESM Bindings (Recommended)

ESM bindings provide a convenient JavaScript wrapper around the WebAssembly module:

// Default import (optimized release build with ESM bindings)
import ananAs from '@fluffylabs/anan-as';

// Debug build (includes source maps and debug info)
import ananAs from '@fluffylabs/anan-as/debug';

// Explicit release build
import ananAs from '@fluffylabs/anan-as/release';

// Release build with minimal runtime (requires manually calling GC)
import ananAs from '@fluffylabs/anan-as/release-mini';
// make sure to call GC after multiple independent runs
ananAs.__collect();

Raw Bindings

Raw bindings give you direct access to WebAssembly exports without the JavaScript wrapper layer. This is useful for instantiating multiple instances or when you need more control:

// Raw bindings
import { instantiate } from '@fluffylabs/anan-as/raw';
// Import WASM file URLs
import debugWasm from '@fluffylabs/anan-as/debug.wasm';
import releaseWasm from '@fluffylabs/anan-as/release.wasm';

// Use with your own loader
const module = await WebAssembly.instantiateStreaming(
  fetch(releaseWasm),
  imports
);
const ananAs = await instantiate(module);

Version Tags

When installing the package, you can choose between stable releases and bleeding-edge builds:

# Latest stable release
npm install @fluffylabs/anan-as

# Latest build from main branch (includes commit hash)
npm install @fluffylabs/anan-as@next

Building

To download the dependencies:

npm ci

To build the WASM modules (in ./build/{release,debug}.wasm):

npm run build

To run the example in the browser at http://localhost:3000.

npm run web

To run JSON test vectors.

npm start ./path/to/tests/*.json

About

Assembly Script implementation of the JAM PVM

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5