You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.0 KiB
40 lines
1.0 KiB
#!/usr/bin/env bash
|
|
|
|
# Usage:
|
|
#
|
|
# wasmtime-serve-rps.sh [WASMTIME-FLAGS] path/to/wasi-http-component.wasm
|
|
#
|
|
# For a basic WASI HTTP component, check out
|
|
# https://github.com/sunfishcode/hello-wasi-http
|
|
#
|
|
# You must have the `hey` tool installed on your `$PATH`. It is available in at
|
|
# least the `apt` and `brew` package managers, as well as a binary download via
|
|
# its github page: https://github.com/rakyll/hey
|
|
|
|
set -e
|
|
|
|
repo_dir="$(dirname $0)/.."
|
|
cargo_toml="$repo_dir/Cargo.toml"
|
|
target_dir="$CARGO_TARGET_DIR"
|
|
if [[ "$target_dir" == "" ]]; then
|
|
target_dir="$repo_dir/target"
|
|
fi
|
|
|
|
# Build Wasmtime.
|
|
cargo build --manifest-path "$cargo_toml" --release -p wasmtime-cli
|
|
|
|
# Spawn `wasmtime serve` in the background.
|
|
"$target_dir/release/wasmtime" serve "$@" &
|
|
pid=$!
|
|
|
|
# Give it a second to print its diagnostic information and get the server up and
|
|
# running.
|
|
sleep 1
|
|
|
|
echo 'Running `wasmtime serve` in background as pid '"$pid"
|
|
|
|
# Benchmark the server!
|
|
echo "Benchmarking for 10 seconds..."
|
|
hey -z 10s http://0.0.0.0:8080/
|
|
|
|
kill "$pid"
|
|
|