andrebaltieri / 2024-03-02-devpira

Apresentação de demos apresentadas no evento DevPira 2024

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Demo 01 - Compilando Rust para Assembly

cargo new hello_rust
cd hello_rust
cargo build --release
cargo rustc --release -- --emit asm
# hello_rust/target/release/deps/hello_rust-914f3b082d833d50.s

Demo 02 - Stack Based Virtual Machine em Rust

https://github.com/andrebaltieri/rust-virtual-machine

Demo 03 - Intermediate Language

Rider > Tools > IL Viewer

Demo 04 - WAT para WASM

(module
  (func $i (import "imports" "imported_func") (param i32))
  (func (export "exported_func")
    i32.const 42
    call $i
  )
)
https://webassembly.github.io/wabt/demo/wat2wasm/

wat2wasm demo

Demo 05 - Rodando WASM via Browser

cargo new hello_wasm --lib
cd hello_wasm
cargo add wasm-bindgen
// The wasm-pack uses wasm-bindgen to build and generate JavaScript binding file.
// Import the wasm-bindgen crate.
use wasm_bindgen::prelude::*;

// Our Add function
// wasm-pack requires "exported" functions
// to include #[wasm_bindgen]
#[wasm_bindgen]
pub fn add(a: i32, b: i32) -> i32 {
  return a + b;
}

Demo 06 - Rodando WASM via Terminal

wasmedge --version
wasmedge version 0.13.5

cd package
wasmedge --reactor rust_wasm_bg.wasm add 10 10

Demo 07 - Rust para WASM

cargo new rust_wasm
fn main() {
    let num1: u32 = 10;
    let num2: u32 = 20;

    let result1 = num1 * num2;
    let result2 = num1 * num2 * 2;
    let result3 = result1 + result2;

    println!("Resultado: {}", result3);
}

Demo 08 - Rodando WASM via Docker

Untitled

docker buildx build --platform wasi/wasm -t rust-wasm .
docker run --rm --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm rust-wasm:latest
hello world!

About

Apresentação de demos apresentadas no evento DevPira 2024


Languages

Language:JavaScript 33.8%Language:Rust 30.0%Language:Dockerfile 15.6%Language:HTML 12.5%Language:WebAssembly 4.6%Language:C# 3.6%