Skip to content
/ wasmio Public

S3 Backed Server for Wasmer

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

Miaxos/wasmio

Repository files navigation

wasmio

S3 Backed Server for Wasmer

 ▄     ▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄   ▄▄ ▄▄▄ ▄▄▄▄▄▄▄ 
█ █ ▄ █ █      █       █  █▄█  █   █       █
█ ██ ██ █  ▄   █  ▄▄▄▄▄█       █   █   ▄   █
█       █ █▄█  █ █▄▄▄▄▄█       █   █  █ █  █
█       █      █▄▄▄▄▄  █       █   █  █▄█  █
█   ▄   █  ▄   █▄▄▄▄▄█ █ ██▄██ █   █       █
█▄▄█ █▄▄█▄█ █▄▄█▄▄▄▄▄▄▄█▄█   █▄█▄▄▄█▄▄▄▄▄▄▄█

release Crates.io version dependency status PRs Welcome

Idea

Wasmer allow file storage with mounted volumes, with this kind of backend we'll be able to implement applications based on a Storage.

We'll implement a S3 Server backed by a Volume from Wasmer.

Development

You'll need to install wasmer and also cargo-wasix.

Side note if you install wasmer on a Mac OS you'll need to add this to the .bash_profile as it seems wasmer add it in the .bashrc instead.

export WASMER_DIR="/Users/wizard/.wasmer"
[ -s "$WASMER_DIR/wasmer.sh" ] && source "$WASMER_DIR/wasmer.sh"

To run the solution locally, you can use this:

Standard

RUST_LOG=info CONFIG_FILE_LOCATION=./public/config.local.toml cargo run --package wasmio RUST_LOG=info

Wasmer

cargo wasix build --package wasmio
wasmer run . \
  --net \
  --enable-threads \
  --env CONFIG_FILE_LOCATION=/public/config.local.toml \
  --env RUST_LOG=info \
  --mapdir /public:$(pwd)/public

Performance

Right now, we are using a simple JSON to store the data, which is not efficient for files based storage. This is just an experiment on the whole storage and wasmer.

To have better performance, the storage layer should be reworked to better use Files APIs (with Seek for instance, a better format to store data, we don't need JSON).

Benchmarks

(Integrate bencher here.)

E2E Tests

(Integrate bencher here.)

About

S3 Backed Server for Wasmer

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages