{"id":13484731,"url":"https://github.com/verifast/verifast","last_synced_at":"2025-11-27T21:03:27.175Z","repository":{"id":11948736,"uuid":"14519163","full_name":"verifast/verifast","owner":"verifast","description":"Research prototype tool for modular formal verification of C, Rust and Java programs","archived":false,"fork":false,"pushed_at":"2025-11-20T18:40:40.000Z","size":14202,"stargazers_count":447,"open_issues_count":110,"forks_count":67,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-11-20T19:07:34.420Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/verifast.png","metadata":{"files":{"readme":"README.Linux.md","changelog":"CHANGELOG.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-11-19T08:57:02.000Z","updated_at":"2025-11-20T17:06:20.000Z","dependencies_parsed_at":"2024-06-10T06:30:02.554Z","dependency_job_id":"e57f8221-d980-4be2-84b8-2340de0cb040","html_url":"https://github.com/verifast/verifast","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/verifast/verifast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verifast%2Fverifast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verifast%2Fverifast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verifast%2Fverifast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verifast%2Fverifast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/verifast","download_url":"https://codeload.github.com/verifast/verifast/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verifast%2Fverifast/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27282357,"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","status":"online","status_checked_at":"2025-11-26T02:00:06.075Z","response_time":193,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-07-31T17:01:31.858Z","updated_at":"2025-11-27T21:03:27.168Z","avatar_url":"https://github.com/verifast.png","language":"Rust","funding_links":[],"categories":["Projects","Rust","Verifiers","Programming Languages"],"sub_categories":["Verification"],"readme":"Building VeriFast on Linux\n==========================\n\nNote: binary downloads are available, both [\"nightly\" builds](https://github.com/verifast/verifast#binaries) of the latest commit, and binaries for [named releases](https://github.com/verifast/verifast/releases).\n\nNote: The instructions below may get out of date. When that happens, please submit an issue. In the meantime, guaranteed up-to-date instructions can be found by looking at the script, [.github/workflows/build.yml](https://github.com/verifast/verifast/blob/master/.github/workflows/build.yml), used by the Github Actions CI service that automatically builds and tests VeriFast after each commit. This script uses the `build_ubuntu` job, which runs on a Ubuntu 18.04 virtual machine. It first runs the command listed below `Build setup:`, and then the command listed below `Build:`.\n\nDevcontainer\n------------\n\nThe easiest way to get started is to use VSCode's support for Dev Containers. Simply choose the Dev Containers: Clone Repository in Container Volume command from the VSCode Command Palette, and enter the `https://github.com/verifast/verifast` repository URL.\n\nOn Linux, you can run the VeriFast IDE from inside the dev container by creating a file `.devcontainer/devcontainer.local.json` with the following contents:\n```json\n{\n  \"runArgs\": [\n    \"-e\", \"DISPLAY=${localEnv:DISPLAY}\",\n    \"-v\", \"/tmp/.X11-unix:/tmp/.X11-unix\"\n  ]\n}\n```\nIn a host terminal, run `xhost +local:docker` to ensure the container has access to your X11 server.\n\nAn alternative is to use the VeriFast VSCode extension. This works even in GitHub Codespaces.\n\nDependencies\n------------\n\nTo install the software needed to build VeriFast, run [setup-build.sh](https://github.com/verifast/verifast/blob/master/setup-build.sh). This script does the following:\n\n- It installs some non-OCaml-based dependencies using `apt-get`:\n    ```\n    sudo apt-get install -y --no-install-recommends \\\n      git wget ca-certificates m4 \\\n      patch unzip libgtk2.0-dev \\\n      valac libgtksourceview2.0-dev \\\n      cmake build-essential\n    ```\n- It installs LLVM/Clang 13.0.0 (a language front-end and tooling infrastructure for languages in the C language family).\n- It installs the OCaml-based dependencies:\n  - OCaml 4.13.0\n  - Findlib 1.9.1 (for the `ocamlfind` tool, used by Z3's install script and dune)\n  - OCaml-Num 1.4 (arbitrary-precision arithmetic)\n  - Ocamlbuild 0.14.0 (to build Camlp4)\n  - Camlp4 4.13+1 (an OCaml preprocessor, for the streams notation used in VeriFast's parser)\n  - GTK+ (a cross-platform GUI toolkit)\n  - Lablgtk 2.18.11 (OCaml bindings to GTK+)\n  - Z3 4.8.5 (a powerful theorem prover, including OCaml bindings)\n  - Dune 2.9.1 (to build and install other OCaml dependencies)\n  - Cap'n Proto 0.9.1 (fast data interchange format)\n  - Capnp 3.4.0 (OCaml plugin for Cap'n Proto)\n  - Other dependencies, mainly to support Capnp:\n    - Csexp 1.5.1\n    - Sexplib0 0.14.0\n    - Base 0.14.1\n    - Res 5.0.1\n    - Stdio 0.14.0\n    - Cppo 1.6.8\n    - Ocplib-endian 1.1\n    - Stdint 0.7.0\n    - Result 1.5\n  \n  It does so by downloading a [vf-llvm-clang-build](https://github.com/NielsMommen/vf-llvm-clang-build/releases/tag/v1.0.0) and [VFDeps](https://github.com/verifast/vfdeps) package with pre-compiled versions of these dependencies. Note: these binaries are location-dependent. They need to be below `/tmp/vf-llvm-clang-build-$VERSION` and `/tmp/vfdeps-$VERSION`, where `$VERSION` is the version (Git hash) of the package; that is, extract the archives into `/tmp`. (You can also extract it elsewhere and then create symlinks called `vf-llvm-clang-build-$VERSION` and `/tmp/vfdeps-$VERSION` that point there.) To see which version is currently being used, see [config.sh](https://github.com/verifast/verifast/blob/master/config.sh).\n\nBuilding VeriFast\n-----------------\n\nTo build VeriFast:\n1. `cd src`\n2. Make sure all dependencies are in your `PATH`. For example: `export PATH=/tmp/vfdeps-$VERSION/bin:$PATH`.\n3. `make`\n\nIf `make` fails (probably due to broken intermediate output files left by earlier failed attempts), try `make clean; make depend; make`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverifast%2Fverifast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fverifast%2Fverifast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverifast%2Fverifast/lists"}