# rabbitizer

> MIPS instruction decoder written in C that never allocates on the heap, with Python, C++ and Rust bindings in the same repository and the stated aim of producing matching assembly. It decodes one instruction word at a time, focusing on MIPS I to III with partial MIPS IV support, and also handles the N64 RSP, the PlayStation's R3000 GTE, the PSP's R4000 Allegrex and the PS2's R5900; it offers validation checks, instruction-grouping queries, configurable pseudo-instructions and register names, and small helpers for building pointer and symbol detection. Matching-decompilation tooling builds on it: splat and spimdisasm both list it as a Python dependency.

- Type: Tool
- Targets: Binary · Game
- Category: Binary analysis libraries
- Relationship: Foundation tool
- Sources reviewed: 2026-10-27
- Added to the catalog: 2026-11-03
- Original resource: <https://github.com/Decompollaborate/rabbitizer>
- Primary source: <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/README.md>
- Catalog page: <https://awesomerea.org/resources/rabbitizer/>
- Record JSON: <https://awesomerea.org/resources/rabbitizer/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/rabbitizer/index.md)

## Requirements & limits

- Latest stable release at review: 1.16.2, published 2026-05-29 on GitHub, PyPI and crates.io, which matches the reviewed 1.x commit. A 2.0.0 alpha series (2.0.0-alpha.9, 2026-05-20) is published from a separate Rust branch; splat and spimdisasm both pin versions below 2.0.0.
- Install with pip install rabbitizer or cargo add rabbitizer. The README gives Python 3.9 as the minimum, although pyproject.toml still declares >=3.4, and building the Python bindings from source needs the Python development headers. The C and C++ libraries build with make and clang (C11 and C++17), and the Rust crate declares Rust 1.66.0. Instruction tables for every binding are generated from templates in tables/, and CI checks that the generated files are current.
- Input is raw 32-bit instruction words, so callers must take code from their own binaries, choose the CPU variant and handle addresses and symbols themselves. Pseudo-instructions that expand to more than one instruction are deliberately unsupported; the README says output should match, reports that RSP output reassembles to matching code with armips, and calls MIPS IV support partial.
- GitHub Actions build the C code with warnings as errors on Ubuntu 22.04 and run build-info, logic and instruction checks, and Python unit tests run on Linux, macOS and Windows; tests/asm holds assembly samples for the GTE, Allegrex and R5900. The README's reference list points to third-party CPU manuals and documentation hosted elsewhere.
- MIT.

## Primary sources

1. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/README.md>
2. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/CHANGELOG.md>
3. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/pyproject.toml>
4. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/Cargo.toml>
5. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/Makefile>
6. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/.github/workflows/make.yml>
7. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/.github/workflows/unit_tests_py.yml>
8. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/.github/workflows/check_tables.yml>
9. <https://github.com/Decompollaborate/rabbitizer/blob/724a49a5b4dbfb99f1a9e6992e63964fd29c90c8/LICENSE>
10. <https://github.com/Decompollaborate/rabbitizer/releases/tag/1.16.2>
11. <https://pypi.org/project/rabbitizer/1.16.2/>
12. <https://crates.io/crates/rabbitizer/1.16.2>
13. <https://github.com/ethteck/splat/blob/7548b9771e6f8418507b23434187fb07741af6d4/pyproject.toml>
14. <https://github.com/Decompollaborate/spimdisasm/blob/4b5d4c68eeb9f9eae14b3bb713971433ae2c3c43/requirements.txt>

## More in Native binaries

- [ghidrecomp](https://awesomerea.org/resources/ghidrecomp/index.md) · Tool
- [Vivisect](https://awesomerea.org/resources/vivisect/index.md) · Tool
- [r2pipe](https://awesomerea.org/resources/r2pipe/index.md) · Tool
- [GREASE](https://awesomerea.org/resources/grease/index.md) · Tool
- [PLASMA](https://awesomerea.org/resources/plasma-disassembler/index.md) · Tool
- [mobdevim](https://awesomerea.org/resources/mobdevim/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
