Skip to content

A suite of development tools and a WASM-Runtime environment for Cairo. All based on WebAssembly. By Caironautes, for Caironautes.

License

Notifications You must be signed in to change notification settings

cryptonerdcn/wasm-cairo

Repository files navigation

WASM runtime for Cairo language and Starknet

WASM-Cairo

A suite of development tools and an environment for Cairo, all based on WebAssembly.

Homepage

Github

Built with 🦀🕸 by cryptonerdcn from Starknet Astro

🚴 Usage

How to use:

  1. You can download the precompiled wasm file from here.
  2. If you want to use WASM-Cairo in your Web App, you can also use npm package wasm-cairo.

If you prefer to build it yourself, you can follow the steps below.

🛠️ Build WASM-bindgen's WASM-Cairo Toolkit

With Modules

wasm-pack build --release --target web --out-dir output/module/pkg --out-name wasm-cairo

No Modules

wasm-pack build --release --target no-modules --out-dir output/no_module/pkg --out-name wasm-cairo

You will find wasm-cairo_bg.wasm and wasm-cairo.js in pkg folder.

Pack & Publish

With Modules

wasm-pack pack output/module
wasm-pack publish  

No Modules

wasm-pack pack output/no_module 

Caution: Do not run wasm-pack publish after wasm-pack pack output/no_module. It will publish the no-modules version.

🛠️ Build WASMTIME's WASM-Cairo Toolkit

cargo build --target wasm32-wasi --release

You can test it by using:

Compile Cairo

./wasmtime_test.sh compileCairoProgram ./cairo_files/HelloStarknetAstro.cairo ./cairo_files/HelloStarknetAstro.sierra

Run

./wasmtime_test.sh runCairoProgram ./cairo_files/HelloStarknetAstro.cairo

Run Tests

./wasmtime_test.sh runTests ./cairo_files/Test.cairo

Compile Contract

./wasmtime_test.sh compileStarknetContract ./cairo_files/storage.cairo ./cairo_files/storage.json  

🔋 Batteries Included

License

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A suite of development tools and a WASM-Runtime environment for Cairo. All based on WebAssembly. By Caironautes, for Caironautes.

Resources

License

Stars

Watchers

Forks

Packages

No packages published