Owi is an automatic bug-finding tool for C, C++, Go, Rust and Zig. It can also be used for test-case generation, proof of programs and solver-aided programming. It works at the WebAssembly level, and thus incidentally provides a Wasm Swiss Army Knife: a formatter, an interpreter, a validator, a converter between .wasm and .wat, but also a fuzzer! Owi being written in OCaml, you can also use it as an OCaml library for many purposes.
List of talks
- september 2023: ICFP OCaml track @ The Westin Seattle - Seattle
- october 2023: Wasm Research Day organized by the WebAssembly Research Center @ Google - Munich
- april 2024: OUPS (OCaml UserS in Paris) @ Sorbonne Université - Paris
- november 2024: LVP working group day of the GdR GPL @ Université Paris-Cité - Paris
- december 2024: Léo Andrès' PhD defense @ Université Paris-Saclay - Gif-sur-Yvette
- january 2025: JFLA 2025 @ Domaine de Roiffé - Roiffé
- february 2025: Wasm Research Day 2025 (remote) @ Fastly - San Francisco
- february 2025: PPS Seminar @ Université Paris-Cité - Paris
- may 2025: 15th MirageOS hack retreat @ Priscilla Queen of the Medina - Marrakech
- june 2025: <Programming> 2025 @ Faculty of Mathematics and Physics, Charles University - Prague
- june 2025: Dagstuhl Seminar 25241 - Utilising and Scaling the WebAssembly Semantics @ Leibniz-Zentrum für Informatik - Dagstuhl
- october 2025: Wasm Research Day October 2025 @ Google - Munich
List of publications
- TODO: man pages (see here for now)
- TODO: high-level API for each language
- TODO: Wasm API
- OCaml library API
This project was partly funded through the NGI0 Core Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program :
Although the name Owi comes from an acronym (OCaml WebAssembly Interpreter), it must be written as a proper noun and only the first letter must be capitalized. It is possible to write the name in full lowercase when referring to the opam package or to the name of the binary.
The reason we chose this spelling rather than the fully capitalized version is that in French, Owi is pronounced [o’wi(ʃ)] which sounds like "Oh oui !" which means "Oh yes!". Thus it should be pronounced this way and not by spelling the three letters it is made of.
Owi
Copyright (C) 2021-2024 OCamlPro
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
See LICENSE.
A few files have been taken from the Wasm reference interpreter. They are licensed under the Apache License 2.0 and have a different copyright which is stated in the header of the files.
Some code has been taken from the base library from Jane Street. It is licensed under the MIT License and have a different copyright which is stated in the header of the files.
Some code has been taken from the E-ACSL plugin of Frama-C. It is licensed under the GNU Lesser General Public License 2.1 and have a different copyright which is stated in the header of the files.