MIRAI

Rust mid-level IR Abstract Interpreter (by facebookexperimental)

MIRAI Alternatives

Similar projects and alternatives to MIRAI

  1. 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.

    InfluxDB logo
  2. TypeScript

    1,421 MIRAI VS TypeScript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  3. Clippy

    121 MIRAI VS Clippy

    A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/

  4. miri

    124 MIRAI VS miri

    An interpreter for Rust's mid-level intermediate representation

  5. rescript

    107 MIRAI VS rescript

    ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript.

  6. Rust-for-Linux

    Adding support for the Rust language to the Linux kernel. (by Rust-for-Linux)

  7. AdGuardDNS

    Public DNS resolver that protects you from ad trackers

  8. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  9. kani

    54 MIRAI VS kani

    Kani Rust Verifier

  10. CMake

    32 MIRAI VS CMake

    Mirror of CMake upstream repository

  11. prusti-dev

    23 MIRAI VS prusti-dev

    A static verifier for Rust, based on the Viper verification infrastructure.

  12. watt

    22 MIRAI VS watt

    Runtime for executing procedural macros as WebAssembly

  13. loom

    16 MIRAI VS loom

    Concurrency permutation testing tool for Rust.

  14. no-panic

    Discontinued Attribute macro to require that the compiler prove a function can't ever panic

  15. Rudra

    12 MIRAI VS Rudra

    Rust Memory Safety & Undefined Behavior Detection

  16. hacl-star

    HACL*, a formally verified cryptographic library written in F*

  17. rustig

    9 MIRAI VS rustig

    A tool to detect code paths leading to Rust's panic handler

  18. Helix

    2 MIRAI VS Helix

    Discontinued Native Ruby extensions without fear (by tildeio)

  19. rust-mode

    4 MIRAI VS rust-mode

    Emacs configuration for Rust

  20. TypeScript-wiki

    6 MIRAI VS TypeScript-wiki

    A repository to make changes to the TypeScript Wiki on GitHub

  21. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better MIRAI alternative or higher similarity.

MIRAI discussion

Log in or Post with

MIRAI reviews and mentions

Posts with mentions or reviews of MIRAI. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-25.
  • Is there something like "super-safe" rust?
    8 projects | /r/rust | 25 Mar 2023
    MIRAI
  • Adding “invariant” clauses to C++ via GCC plugin to enable Design-by-Contract
    5 projects | news.ycombinator.com | 1 Jan 2023
    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
    8 projects | news.ycombinator.com | 13 Oct 2022
    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
    8 projects | news.ycombinator.com | 1 Oct 2022
  • A pair of Linux kernel modules using Rust
    5 projects | news.ycombinator.com | 13 Sep 2022
  • Does Rust not need extra linting and sanitizing tools like C++?
    11 projects | /r/rust | 28 Aug 2022
    There's a MIR Abstract interpreter project: https://github.com/facebookexperimental/MIRAI
  • Kani Rust Verifier – a bit-precise model-checker for Rust
    7 projects | news.ycombinator.com | 23 Mar 2022
    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
    7 projects | /r/rust | 10 Mar 2022
    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?
    3 projects | /r/rust | 17 Jul 2021
    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
    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 →

Stats

Basic MIRAI repo stats
9
1,002
6.1
9 months ago

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.


Sponsored
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.
www.influxdata.com

Did you know that Rust is
the 5th most popular programming language
based on number of references?