- Implementation of a security-typesystem following this paper
- Security guarantee: termination-insensitive non-interference
- Running
nix-shellwill enter an environment with the required dependencies. - Otherwise, the following manual setup is possible
- Ocaml version 5,
duneversion 3.10 - Webassembly binary toolkit:
wabt, provideswat2wasmandwasm2watamong others - wasmtime
- 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.26.0opam install ocamlformat - Pre-commit hook to ensure formatting:
pip install pre-committhen in the root repo:pre-commit install
- See the Makefile for examples:
make testto run the testsuitemake coverageto generate a report of the test coveragemake runto run the static typecheck on an example modulemake bubblesort-benchmarkfor benchmarking the performance penalty of the dynamic checksmake seqmem-benchmarkfor benchmarking the performance penalty of the dynamic checks