InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now. Learn more →
MIRAI Alternatives
Similar projects and alternatives to MIRAI
-
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
-
Clippy
A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/
-
-
rescript
ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript.
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
-
-
-
no-panic
Discontinued Attribute macro to require that the compiler prove a function can't ever panic
-
-
-
-
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
MIRAI discussion
MIRAI reviews and mentions
-
Is there something like "super-safe" rust?
MIRAI
-
Adding “invariant” clauses to C++ via GCC plugin to enable Design-by-Contract
Do you use the Cargo "contracts" for Design-by-Contract style invariants that plugs into Facebook's MIRAI prover thing?
I always thought it this was super neat:
https://crates.io/crates/contracts
https://github.com/facebookexperimental/MIRAI/blob/main/exam...
[dependencies]
-
Prusti: Static Analyzer for Rust
Here's a 2020 overview of Rust verification tools https://alastairreid.github.io/rust-verification-tools/ - it says
> Auto-active verification tools
> While automatic tools focus on things not going wrong, auto-active verification tools help you verify some key properties of your code: data structure invariants, the results of functions, etc. The price that you pay for this extra power is that you may have to assist the tool by adding function contracts (pre/post-conditions for functions), loop invariants, type invariants, etc. to your code.
> The only auto-active verification tool that I am aware of is Prusti. Prusti is a really interesting tool because it exploits Rust’s unusual type system to help it verify code. Also Prusti has the slickest user interface: a VSCode extension that checks your code as you type it!
> https://marketplace.visualstudio.com/items?itemName=viper-ad...
Now, on that list, there is also https://github.com/facebookexperimental/MIRAI that, alongside the crate https://crates.io/crates/contracts (with the mirai_assertion feature enabled) enables writing code like this
#[ensures(person_name.is_some() -> ret.contains(person_name.unwrap()))]
- Ten Years of TypeScript
- A pair of Linux kernel modules using Rust
-
Does Rust not need extra linting and sanitizing tools like C++?
There's a MIR Abstract interpreter project: https://github.com/facebookexperimental/MIRAI
-
Kani Rust Verifier – a bit-precise model-checker for Rust
Nice, I just would have liked to get all these different verification tools combined under the same interface, just being different backends as drafted by the rust verification tools work of project oak: have "cargo verify" as common command and use common test annotations, allowing the same test to be verified with different backends or just fuzzed/proptested.
The model checking approach seems to be a bit limited regarding loops. There are also abstract interpreters, such as https://github.com/facebookexperimental/MIRAI, and symbolic executers, such as https://github.com/dwrensha/seer or https://github.com/GaloisInc/crucible.
Overall I believe this space would benefit from more coordination and focus on developing something that has the theoretical foundations to cover as many needs as possible and then make a user-friendly tool out of it that is endorsed by the Rust project similar to how Rust analyzer is the one language server to come.
-
Things I hate about Rust, redux
https://github.com/facebookexperimental/MIRAI which integrates with https://crates.io/crates/contracts (a crate that does runtime checking of contracts, and with mirai they are upgraded to compile-time checking) and https://crates.io/crates/mirai-annotations
-
Is Rust Used Safely by Software Developers?
With the mirai_assertions feature, it can use the MIRAI static analyzer (though it requires nightly).
-
A note from our sponsor - InfluxDB
www.influxdata.com | 13 May 2025
Stats
facebookexperimental/MIRAI is an open source project licensed under MIT License which is an OSI approved license.
The primary programming language of MIRAI is Rust.