rust-lang

    rust-lang/miri

    An interpreter for Rust's mid-level intermediate representation

    backend
    Rust
    Apache-2.0
    6.7K stars
    544 forks
    6.7K GitHub watchers
    Updated Nov 4, 2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Where it stands

    Rank, growth pace and release cadence relative to everything GStars tracks.

    The project lists 376 contributors on GitHub.

    Use Cases & Benefits

    • Interprets Rust's mid-level intermediate representation to detect undefined behavior and memory safety violations.
    • Provides precise detection of unsafe code errors like out-of-bounds access, use-after-free, and data races beyond compile-time checks.
    • Use for debugging unsafe Rust code to identify subtle memory and concurrency bugs during development.
    • Use for cross-platform testing by emulating execution on different target architectures and endianness.
    • Use for continuous integration to catch undefined behavior regressions early by running Rust test suites under Miri.

    Should you depend on it?

    License terms, project hygiene and risks, from GitHub metadata and GStars' snapshots.

    License

    Apache 2.0

    Permissive: commercial use, modification and redistribution are allowed with attribution; includes an explicit patent grant from contributors.

    Community files

    • README: present
    • Contributing guide: present

    Watch-outs

    • No GitHub releases; pin a commit or tag instead of a release.

    General guidance from repository metadata, not legal advice. How we score

    From the README

    Miri is an Undefined Behavior detection tool for Rust. It can run binaries and test suites of cargo projects and detect unsafe code that fails to uphold its safety requirements. For instance:

    On top of that, Miri will also tell you about memory leaks: when there is memory still allocated at the end of the execution, and that memory is not reachable from a global static, Miri will raise an error.

    You can use Miri to emulate programs on other targets, e.g. to ensure that byte-level data manipulation works correctly both on little-endian and big-endian systems. See cross-interpretation below.

    Miri has already discovered many real-world bugs. If you found a bug with Miri, we'd appreciate if you tell us and we'll add it to the list!

    By default, Miri ensures a fully deterministic execution and isolates the program from the host system. Some APIs that would usually access the host, such as gathering entropy for random number generators, environment variables, and clocks, are replaced by deterministic "fake" implementations. Set MIRIFLAGS="-Zmiri-disable-isolation" to access the real system APIs instead. (In particular, the "fake" system RNG APIs make Miri not suited for cryptographic use! Do not generate keys using Miri.)

    Excerpt from the rust-lang/miri README on GitHub (Apache-2.0 license). © its authors.Read the full README on GitHub

    Daily snapshots

    Stars gained per day, and how forks and open issues moved, from GStars' daily snapshots

    Forks

    544+34

    Open issues

    200+27

    Compared with peers in Backend

    Fastest-growing repositories GStars tracks in this cohort for the week of Nov 1, by 7-day star growth

    rust-lang/miri compared with Backend repositories by stars, 7-day star growth, health score and last release
    RepositoryStars+7dHealthLast release
    anthropics/skills187.8K+2.9K15—
    DuarteSantos8/openGym19.7K+2.4K602 days ago
    shiyu-coder/Kronos47.0K+2.3K16—
    NationalSecurityAgency/ghidra98.2K+2.3K6414 days ago
    microsoft/VibeVoice56.0K+1.1K29—
    rust-lang/miri6.7K—40—
    Category median56.0K+2.3K29—

    Also by rust-lang

    Other repositories from this maintainer that GStars tracks

    Discover Repositories

    Search across tracked repositories by name or description