Add Cookbook

extensions
Volodymyr Shymanskyy 3 years ago
parent 4f0b769629
commit d931d669d9

@ -0,0 +1,91 @@
# Wasm3 cookbook
### Rust WASI app
TODO
### AssemblyScript WASI app
TODO
### TinyGo WASI app
TODO
### Zig WASI app
Create `hello.zig`:
```zig
const std = @import("std");
pub fn main() !void {
const stdout = std.io.getStdOut().writer();
try stdout.print("Hello, {s}!\n", .{"world"});
}
```
```sh
$ zig build-exe -O ReleaseSmall -target wasm32-wasi hello.zig
$ wasm3 hello.wasm
Hello, world!
```
## Zig library
Create `add.zig`:
```zig
export fn add(a: i32, b: i32) i64 {
return a + b;
}
```
```sh
$ zig build-lib add.zig -O ReleaseSmall -target wasm32-freestanding
$ wasm3 --repl add.wasm
wasm3> add 1 2
Result: 3
```
### C WASI app
The easiest way to start is to use [Wasienv](https://github.com/wasienv/wasienv).
Create `hello.c`:
```c
#include <stdio.h>
int main()
{
printf("Hello, %s!\n", "world");
return 0;
}
```
```sh
$ wasicc -O3 -Wl,--stack-first hello.c -o hello.wasm
$ wasm3 hello.wasm
Hello, world!
```
### C++ WASI app
Create `hello.cpp`:
```cpp
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
```
```sh
$ wasic++ -O3 -Wl,--stack-first hello.cpp -o hello.wasm
$ wasm3 hello.wasm
Hello World!
```
Loading…
Cancel
Save