Tool

r2pipe

radare2's official scripting interface, with implementations for more than two dozen languages in one repository. Every binding sends radare2 command strings and returns their text output, the design behind r_core_cmd_str(), and the README recommends asking for JSON output and decoding it into native objects instead of using the C API. Bindings connect through the R2PIPE_IN/R2PIPE_OUT pipes of a script run from inside r2, a spawned r2 -q0 process, TCP, HTTP or radare2's RAP protocol, many offer asynchronous calls, and r2pipe scripts can also implement radare2 plugins such as disassemblers, IO backends or ESIL syscall handlers.

Targets
Binary
Category
Native analysis tools
Relationship
Foundation tool
Sources reviewed

Requirements & limits

  • The newest GitHub release at review is 6.1.2, published 2026-04-20 as source only, and the reviewed master commit is 54 commits ahead of it; each language is also packaged separately. The Python package r2pipe 2.1.0 (Python 3.6+) was uploaded to PyPI on 2026-10-19, matching python/pyproject.toml, while npm's r2pipe was at 2.8.6 from 2024-01-16 and r2pipe-ts at 0.4.0. The Rust crate lives in the separate r2pipe.rs repository, and the README's capability table marks which backends each language supports.
  • Apart from the WebAssembly variant, every binding talks to a radare2 process, either spawned locally or reached as a TCP, HTTP or RAP server, and command strings and output formats follow the radare2 version in use. CI installs the radare2 6.1.4 Debian packages on Ubuntu 24.04 and tests the Perl, Python, TypeScript, Ruby, Tcl, Vala, Swift and .NET bindings; other languages were not checked.
  • python-wasm is a separate r2pipe_wasm package that runs radare2's wasi-api WebAssembly build inside Python through Wasmer's Python SDK 1.1.0, downloading the newest stable release with that asset by default. Its README verifies only CPython 3.9 on Linux x86_64, pins its examples to 6.1.4 and reports that the published 6.2.2 API module traps during startup.
  • GitHub detects no repository-wide license. The Python, Python WASM, Go, .NET, Haskell and Erlang directories carry MIT license files and the npm packages declare MIT; other directories were not checked. Binaries to analyze come from the user, and the TypeScript tests bundle one fixture, typescript/tests/fixtures/wasm-api.wasm. No binding was installed or run.

About this entry

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · radareorg/radare2-r2pipe · Revision c355810
  2. README.md#L56-L82 GitHub · radareorg/radare2-r2pipe · Revision c355810
  3. python/README.md GitHub · radareorg/radare2-r2pipe · Revision c355810
  4. python/pyproject.toml GitHub · radareorg/radare2-r2pipe · Revision c355810
  5. python/LICENSE GitHub · radareorg/radare2-r2pipe · Revision c355810
  6. python-wasm/README.md GitHub · radareorg/radare2-r2pipe · Revision c355810
  7. nodejs/r2pipe/package.json GitHub · radareorg/radare2-r2pipe · Revision c355810
  8. typescript/package.json GitHub · radareorg/radare2-r2pipe · Revision c355810
  9. rust/ORIGIN GitHub · radareorg/radare2-r2pipe · Revision c355810
  10. .github/workflows/ci.yml GitHub · radareorg/radare2-r2pipe · Revision c355810
  11. https://github.com/radareorg/radare2-r2pipe/releases/tag/6.1.2
  12. https://pypi.org/project/r2pipe/2.1.0/
  13. https://www.npmjs.com/package/r2pipe/v/2.8.6

More in Native binaries

All 158 entries in Native binaries