847850277 / wasm-cairo

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WASM runtime for Cairo language and Starknet

WASM-Cairo

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

Github

Built with ๐Ÿฆ€๐Ÿ•ธ by cryptonerdcn from Starknet Astro

๐Ÿšด Usage

๐Ÿ› ๏ธ 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 

๐Ÿ› ๏ธ 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

  • wasm-bindgen for communicating between WebAssembly and JavaScript.
  • console_error_panic_hook for logging panic messages to the developer console.
  • wee_alloc, an allocator optimized for small code size.
  • Cairo for Cairo-lang support.
  • LICENSE-APACHE and LICENSE-MIT: most Rust projects are licensed this way, so these are included for you

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.

License:Apache License 2.0


Languages

Language:Rust 83.3%Language:Shell 8.1%Language:JavaScript 5.7%Language:Cairo 3.0%