layer8-interceptor-rs
v0.0.5
Published
This repository contains a Rust implementation of the Layer8 Interceptor. Analogous to <https://github.com/globe-and-citizen/layer8-interceptor>
Downloads
209
Readme
Layer8 Interceptor
This repository contains a Rust implementation of the Layer8 Interceptor. Analogous to https://github.com/globe-and-citizen/layer8-interceptor
At the time of writing this document, it is a 1:1 port of the original implementation. The offering for this is a smaller wasm binary size and potentially better performance.
How To Build
Prerequisites
cargo install wasm-bindgen-cli
cargo install wasm-opt
[wasm32-target]
rustup target add wasm32-unknown-unknown
Build
We use wasm-pack to build the wasm module for web.
wasm-pack build --target bundler --all-features --release
If you run into
cargo:warning=error: unable to create target: 'No available targets are compatible with triple "wasm32-unknown-unknown"'
you will need to use a newer version of llvm. Please follow the first two steps from the attached documentation to achieve this. Setup newer llvm/clang.
Running the interceptor with an example
We can use the We've Got Poems example from the original Layer8 Interceptor repository to test our wasm implementation. We've changed the module used to this wasm implementation.
The example can be found in the wgp directory. Navigate to it and follow the readme for a trial run.
Tests With Code Coverage
To generate code coverage we use cargo-llvm-cov
. To install it run:
cargo install cargo-llvm-cov
You can run code coverage by running:
cargo llvm-cov > test-coverage.txt
The result will be in the newly created test-coverage.txt
file. This can be used to generate a HTML report or a lcov.info
file.
To generate a HTML report run:
cargo llvm-cov --html --open
To generate a lcov.info
file run:
cargo llvm-cov --workspace --lcov --output-path lcov.info
The generated lcov.info
can be used with IDE tools like coverage gutters to watch code coverage.