Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cryptonerdcn/wasm-cairo
A suite of development tools and a WASM-Runtime environment for Cairo. All based on WebAssembly. By Caironautes, for Caironautes.
https://github.com/cryptonerdcn/wasm-cairo
Last synced: 9 days ago
JSON representation
A suite of development tools and a WASM-Runtime environment for Cairo. All based on WebAssembly. By Caironautes, for Caironautes.
- Host: GitHub
- URL: https://github.com/cryptonerdcn/wasm-cairo
- Owner: cryptonerdcn
- License: apache-2.0
- Created: 2023-06-18T03:22:58.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-02T00:42:31.000Z (3 months ago)
- Last Synced: 2024-10-13T00:31:16.419Z (27 days ago)
- Language: Rust
- Homepage: https://wasm-cairo-landing.vercel.app/
- Size: 5.76 MB
- Stars: 53
- Watchers: 2
- Forks: 13
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE_APACHE
Awesome Lists containing this project
- awesome-cairo - `WASM-Cairo`
- awesome-starknet - wasm-cairo - Wasm bindings for Cairo. (Additional developer resources)
README
WASM runtime for Cairo language and Starknet
WASM-Cairo
A suite of development tools and an environment for Cairo, all based on WebAssembly.
[Homepage](https://wasm-cairo-landing.vercel.app/)
[Github](https://github.com/cryptonerdcn/wasm-cairo)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`](https://github.com/rustwasm/wasm-bindgen) for communicating
between WebAssembly and JavaScript.
* [`console_error_panic_hook`](https://github.com/rustwasm/console_error_panic_hook)
for logging panic messages to the developer console.
* [`wee_alloc`](https://github.com/rustwasm/wee_alloc), an allocator optimized
for small code size.
* [`Cairo`](https://github.com/starkware-libs/cairo) for Cairo-lang support.
* `LICENSE-APACHE` and `LICENSE-MIT`: most Rust projects are licensed this way, so these are included for you## License
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
### 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.