diff options
| author | Henry Gressmann <mail@henrygressmann.de> | 2024-01-30 01:12:38 +0100 |
|---|---|---|
| committer | Henry Gressmann <mail@henrygressmann.de> | 2024-01-30 01:12:38 +0100 |
| commit | 893396aa3ce270280a2a1a87007a4b84edc8b898 (patch) | |
| tree | 59690b8bee97a158a01dd49f4b6e611bdf284546 /examples/rust | |
| parent | 4919d8c2f86f69f669a1afba2a28d5c344fe7197 (diff) | |
perf: add more benchmarks
Signed-off-by: Henry Gressmann <mail@henrygressmann.de>
Diffstat (limited to 'examples/rust')
| -rw-r--r-- | examples/rust/Cargo.toml | 5 | ||||
| -rwxr-xr-x | examples/rust/build.sh | 4 | ||||
| -rw-r--r-- | examples/rust/src/argon2id.rs | 14 | ||||
| -rw-r--r-- | examples/rust/src/fibonacci.rs | 8 | ||||
| -rw-r--r-- | examples/rust/src/print.rs | 7 |
5 files changed, 22 insertions, 16 deletions
diff --git a/examples/rust/Cargo.toml b/examples/rust/Cargo.toml index 2d06488..f3f475e 100644 --- a/examples/rust/Cargo.toml +++ b/examples/rust/Cargo.toml @@ -11,6 +11,7 @@ edition="2021" [dependencies] tinywasm={path="../../crates/tinywasm", features=["parser", "std", "unsafe"]} +argon2={version="0.5"} [[bin]] name="hello" @@ -28,6 +29,10 @@ path="src/tinywasm.rs" name="fibonacci" path="src/fibonacci.rs" +[[bin]] +name="argon2id" +path="src/argon2id.rs" + [profile.wasm] opt-level=3 lto="thin" diff --git a/examples/rust/build.sh b/examples/rust/build.sh index cabf00e..e6d3b0d 100755 --- a/examples/rust/build.sh +++ b/examples/rust/build.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash cd "$(dirname "$0")" -bins=("hello" "fibonacci" "print" "tinywasm") +bins=("hello" "fibonacci" "print" "tinywasm" "argon2id") exclude_wat=("tinywasm") out_dir="./target/wasm32-unknown-unknown/wasm" dest_dir="out" @@ -15,7 +15,7 @@ for bin in "${bins[@]}"; do RUSTFLAGS="-C target-feature=$features -C panic=abort" cargo build --target wasm32-unknown-unknown --package rust-wasm-examples --profile=wasm --bin "$bin" cp "$out_dir/$bin.wasm" "$dest_dir/" - wasm-opt "$dest_dir/$bin.wasm" -o "$dest_dir/$bin.wasm" -O --intrinsic-lowering -O + wasm-opt "$dest_dir/$bin.wasm" -o "$dest_dir/$bin.wasm" -Oz --enable-bulk-memory --enable-multivalue --enable-reference-types --enable-mutable-globals if [[ ! " ${exclude_wat[@]} " =~ " $bin " ]]; then wasm2wat "$dest_dir/$bin.wasm" -o "$dest_dir/$bin.wat" diff --git a/examples/rust/src/argon2id.rs b/examples/rust/src/argon2id.rs new file mode 100644 index 0000000..01ea7ca --- /dev/null +++ b/examples/rust/src/argon2id.rs @@ -0,0 +1,14 @@ +#![no_main] + +#[no_mangle] +pub extern "C" fn argon2id(m_cost: i32, t_cost: i32, p_cost: i32) -> i32 { + let password = b"password"; + let salt = b"some random salt"; + + let params = argon2::Params::new(m_cost as u32, t_cost as u32, p_cost as u32, None).unwrap(); + let argon = argon2::Argon2::new(argon2::Algorithm::Argon2id, argon2::Version::V0x13, params); + + let mut hash = [0u8; 32]; + argon.hash_password_into(password, salt, &mut hash).unwrap(); + hash[0] as i32 +} diff --git a/examples/rust/src/fibonacci.rs b/examples/rust/src/fibonacci.rs index 7924aef..8de496d 100644 --- a/examples/rust/src/fibonacci.rs +++ b/examples/rust/src/fibonacci.rs @@ -1,11 +1,5 @@ -#![no_std] #![no_main] - -#[cfg(not(test))] -#[panic_handler] -fn panic(_info: &core::panic::PanicInfo) -> ! { - core::arch::wasm32::unreachable() -} +#![allow(non_snake_case)] #[no_mangle] pub extern "C" fn fibonacci(n: i32) -> i32 { diff --git a/examples/rust/src/print.rs b/examples/rust/src/print.rs index 34f3c7f..d04daa3 100644 --- a/examples/rust/src/print.rs +++ b/examples/rust/src/print.rs @@ -1,12 +1,5 @@ -#![no_std] #![no_main] -#[cfg(not(test))] -#[panic_handler] -fn panic(_info: &core::panic::PanicInfo) -> ! { - core::arch::wasm32::unreachable() -} - #[link(wasm_import_module = "env")] extern "C" { fn printi32(x: i32); |
