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

#!/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"