- Implementation of a security-typesystem following this paper
- Security guarantee: termination-insensitive non-interference
- Running
nix-shell
will enter an environment with the required dependencies. - Otherwise, the following manual setup is possible
- Ocaml version 4,
dune
version 3.7 - Webassembly binary toolkit:
wabt
, provideswat2wasm
andwasm2wat
among others - Nodejs: version 18 or 19
- perf-tool for benchmarking, debian package name:
linux-perf
- Install opam dependencies:
cd src/
opam pin add -y .
opam install --deps-only secwasm
- Run the project with the Makefile in
src/
- Ocaml formatting tool:
opam pin add ocamlformat 0.21.0
opam install ocamlformat
- Pre-commit hook to ensure formatting:
pip install pre-commit
then in the root repo:pre-commit install
- See the Makefile for examples:
make test
to run the testsuitemake coverage
to generate a report of the test coveragemake run
to run the static typecheck on an example modulemake bubblesort-benchmark
for benchmarking the performance penalty of the dynamic checksmake seqmem-benchmark
for benchmarking the performance penalty of the dynamic checks