Skip to content

This is a VMware Research Group project. It is an experimental framework to build practical, formally verified, cluster management controllers.

License

Notifications You must be signed in to change notification settings

euclidgame/verifiable-controllers

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

verifiable-controllers

Overview

This is an experimental framework to build practical, formally verified, cluster management controllers. The goal is to be able to write a controller in Rust, and have it be formally verified for correctness using the Verus toolkit.

Try it out

You cannot compile the verifiable-controllers codebase with a standard rust compiler. You need to use the rust compiler supplied by the Verus project. Follow their installation instructions to do so.

Prerequisites

  • A Verus installation

Build and run

To build and verify the controller examples:

$: VERUS_DIR=<path-to-verus> ./build.sh

To verify the tla toy examples:

$: <path-to-verus>/source/tools/rust-verify.sh src/temporal_logic_examples.rs

Documentation

Our verification approach is described here.

Contributing

The verifiable-controllers project team welcomes contributions from the community. Before you start working with verifiable-controllers, please read our Developer Certificate of Origin. All contributions to this repository must be signed as described on that page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch. For more detailed information, refer to CONTRIBUTING.md.

License

This project is available under an MIT License.

About

This is a VMware Research Group project. It is an experimental framework to build practical, formally verified, cluster management controllers.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.7%
  • Shell 0.3%