An automatic bug-finding tool for C, C++, Go, Rust, and Zig using WebAssembly-level symbolic execution.
Owi is an automatic bug-finding tool that analyzes programs written in C, C++, Go, Rust, and Zig by compiling them to WebAssembly. It uses parallel symbolic execution to detect bugs, generate test cases, and support formal verification of program correctness.
Developers and security researchers working with C, C++, Go, Rust, or Zig who need to perform security testing, verification, or quality assurance on their WebAssembly-compiled code.
Developers choose Owi because it provides cross-language bug detection through a common WebAssembly intermediate representation, offers a comprehensive suite of Wasm utilities (formatter, interpreter, validator, fuzzer), and makes advanced symbolic execution techniques accessible and performant.
Seamless bug-finding for C, C++, Go, Rust, Wasm and Zig
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Analyzes programs from C, C++, Go, Rust, and Zig by compiling them to WebAssembly, enabling security testing across multiple languages with a single tool.
Uses parallel symbolic execution to explore program paths and detect bugs, making complex verification techniques accessible for test-case generation and proof of programs.
Provides a suite of tools including a formatter, interpreter, validator, and fuzzer, acting as a Swiss Army knife for WebAssembly development and analysis.
Offers an OCaml library for embedding symbolic execution and Wasm tooling into other projects, facilitating custom integrations and extensibility.
Requires all target programs to be compiled to WebAssembly first, adding an extra step and potentially excluding code that cannot be ported to Wasm.
Only supports languages that compile to WebAssembly (C, C++, Go, Rust, Zig), missing many popular languages and frameworks.
Symbolic execution is computationally heavy, making Owi slower and less suitable for quick, iterative testing or resource-constrained environments.