{"id":15085493,"url":"https://github.com/OCamlPro/owi","last_synced_at":"2025-09-26T06:31:24.411Z","repository":{"id":64467671,"uuid":"573640699","full_name":"OCamlPro/owi","owner":"OCamlPro","description":"WebAssembly Swissknife \u0026 cross-language bugfinder","archived":false,"fork":false,"pushed_at":"2025-01-15T16:05:16.000Z","size":13651,"stargazers_count":137,"open_issues_count":97,"forks_count":19,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-01-15T17:45:23.289Z","etag":null,"topics":["afl","c","concolic-execution","constraints","formatter","fuzzer","interpreter","nlnet","ocaml","optimizer","owi","parallel","rust","smt","solver","symbolic-execution","wasm","wasm2wat","wat2wasm","webassembly"],"latest_commit_sha":null,"homepage":"https://ocamlpro.github.io/owi/","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OCamlPro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-03T00:57:11.000Z","updated_at":"2025-01-15T16:05:18.000Z","dependencies_parsed_at":"2023-11-09T13:23:38.564Z","dependency_job_id":"958ecf3a-75f9-483c-9e9f-fc8d7628836d","html_url":"https://github.com/OCamlPro/owi","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fowi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fowi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fowi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fowi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OCamlPro","download_url":"https://codeload.github.com/OCamlPro/owi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234296353,"owners_count":18809988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["afl","c","concolic-execution","constraints","formatter","fuzzer","interpreter","nlnet","ocaml","optimizer","owi","parallel","rust","smt","solver","symbolic-execution","wasm","wasm2wat","wat2wasm","webassembly"],"created_at":"2024-09-25T07:01:31.144Z","updated_at":"2025-09-26T06:31:24.405Z","avatar_url":"https://github.com/OCamlPro.png","language":"OCaml","readme":"# [🐌] Owi [![build-badge]][build status] [![coverage-badge]][coverage percentage]\n\n**Owi** is an open-source framework for advanced WebAssembly analysis and manipulation, with a focus on practical symbolic execution and robust tooling.\nIt is designed for researchers, engineers, programming language enthusiasts and practitioners requiring precise, flexible, and extensible support program reasoning.\n\nOwi provides three primary components:\n\n###  🔬 Symbolic Execution Engine for Wasm, C, C++, Rust, and Zig\n\nOwi includes a cross-language symbolic execution engine supporting:\n- **Automated testing, bug finding and pentesting** through symbolic testing and constraint solving;\n- **Solver-aided programming** for problem solving and synthesis tasks;\n- **Test case generation** aligned with advanced coverage criteria;\n- **Formal verification**: prove properties or find counterexamples in real-world programs.\n\nThe engine is designed for precision, scalability, interoperability across languages, and extensibility toward both experimental and applied verification use-cases.\nIt offers a practical path from fuzzing to formal proofs.\n\n### 🔧 The Wasm Swiss Army Knife\n\nOwi offers a set of practical tools for Wasm development and analysis:\n- **Formatter** for Wasm modules;\n- **Interpreter** for `.wasm`, `.wat`, and `.wast` files;\n- **Specification-compliant validator**;\n- **Bidirectional translation** between binary (`.wasm`) and text (`.wat`) formats;\n- **Randomized fuzzer** generating valid (well-typed) Wasm modules.\n\nThese tools aim to support everyday development tasks as well as research on program analysis, fuzzing, and program transformation.\n\n### 🐪  Native OCaml Library for Wasm Integration\n\nOwi also provides a library for:\n- **Embedding Wasm modules** into OCaml applications;\n- **Importing OCaml functions** into Wasm modules with full type safety.\n\nThis allows for tightly integrating Wasm-based computation within OCaml-based systems while maintaining strong type guarantees.\n\n### Documentation\n\nA [detailed documentation is available], including tutorials, how-to guides, explanation and design notes, many references and instructions for contributing.\n\n### License\n\n    Owi\n    Copyright (C) 2021-2024 OCamlPro\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU Affero General Public License for more details.\n\n    You should have received a copy of the GNU Affero General Public License\n    along with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\nSee [LICENSE].\n\nA 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.\n\nSome 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.\n\nSome 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.\n\n\n[LICENSE]: ./LICENSE.md\n\n[build-badge]: https://github.com/OCamlPro/owi/actions/workflows/build-ubuntu.yml/badge.svg\n[build status]: https://github.com/ocamlpro/owi/actions\n[coverage-badge]: https://raw.githubusercontent.com/ocamlpro/owi/gh-pages/coverage/badge.svg\n[coverage percentage]: https://ocamlpro.github.io/owi/coverage\n[detailed documentation is available]: https://ocamlpro.github.io/owi/\n\n[🐌]: https://youtu.be/XgK9Fd8ikxk\n","funding_links":[],"categories":["Debugging","Non-Web Embeddings","Tools","OCaml","Program analysis"],"sub_categories":["Rust"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOCamlPro%2Fowi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOCamlPro%2Fowi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOCamlPro%2Fowi/lists"}