The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 4 Rust Formal Verification Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
> The overall goal would be to figure out classical error conditions like nill pointers deference.
> If I can figure out if a pointer will be nil in some execution branch, there is no reason why a computer cannot do the same.
Note, this is called flow-sensitive typing (also called type narrowing) and I think that typescript does it.
https://en.wikipedia.org/wiki/Flow-sensitive_typing
> I personally would see this as an human race level upgrades. Imagine feeding your code to a CI that spit back something like: "you will have a panic at line 156 when your input is > 4"
A model checker can do that!
See this
https://model-checking.github.io/kani/tutorial-kinds-of-fail...
Other techniques are also possible
https://github.com/viperproject/prusti-dev#quick-example
(Here I could link a lot of things, I just selected two Rust projects to illustrate)
This works better if you are able to provide contracts in your API that says which guarantees you provide. Alternatively, asserts are useful too.
Rust Formal Verification related posts
- Creusot, a deductive verifier for Rust code
- Creusot, a deductive verifier for Rust code
- Conditioonal Compilation across Crates?
- Kani 0.29.0 has been released!
- Trying to find a crate that allows you to constrain the value of arguments in various ways via a proc macro
- Prop v0.42 released! Don't panic! The answer is... support for dependent types :)
- Prusti: Static Analyzer for Rust
-
A note from our sponsor - WorkOS
workos.com | 23 Apr 2024
Index
What are some of the best open-source Formal Verification projects in Rust? This list will help you:
Project | Stars | |
---|---|---|
1 | prusti-dev | 1,460 |
2 | creusot | 968 |
3 | CreuSAT | 581 |
4 | supervisionary | 3 |
Sponsored