{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/README.md#L56-L82",
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/python/README.md",
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/python/pyproject.toml",
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/python/LICENSE",
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/python-wasm/README.md",
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/nodejs/r2pipe/package.json",
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/typescript/package.json",
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/rust/ORIGIN",
    "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/.github/workflows/ci.yml",
    "https://github.com/radareorg/radare2-r2pipe/releases/tag/6.1.2",
    "https://pypi.org/project/r2pipe/2.1.0/",
    "https://www.npmjs.com/package/r2pipe/v/2.8.6"
  ],
  "category": "native-analysis",
  "description_en": "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.",
  "description_zh": "radare2 官方的脚本接口，同一仓库内收录了二十多种语言的实现。所有绑定都向 radare2 发送命令字符串并返回其文本输出，这正是 r_core_cmd_str() 背后的设计；README 建议请求 JSON 输出并将其解码为本地语言对象，而不是直接调用 C API。绑定可经由从 r2 内部运行脚本时的 R2PIPE_IN/R2PIPE_OUT 管道、新启动的 r2 -q0 进程、TCP、HTTP 或 radare2 自有的 RAP 协议连接，其中许多支持异步调用；r2pipe 脚本还可用于实现反汇编器、IO 后端或 ESIL 系统调用处理器等 radare2 插件。",
  "entry_url": "https://awesomerea.org/resources/r2pipe/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/r2pipe/",
  "evidence_url": "https://github.com/radareorg/radare2-r2pipe/blob/c3558109db3868f34b7bd6a02775611a9265d81a/README.md",
  "group": "tools",
  "id": "r2pipe",
  "json_url": "https://awesomerea.org/resources/r2pipe/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/r2pipe/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/r2pipe/index.md",
  "name": "r2pipe",
  "name_zh": "r2pipe radare2 多语言脚本接口",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "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.",
    "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. Binaries to analyze come from the user, and the TypeScript tests bundle one fixture, typescript/tests/fixtures/wasm-api.wasm."
  ],
  "requirements_zh": [
    "审阅时最新的 GitHub 发行版为 6.1.2，于 2026-04-20 发布，仅含源码；所审阅的 master 提交比它多 54 个提交。各语言实现也分别打包发布：Python 包 r2pipe 2.1.0（需 Python 3.6+）于 2026-10-19 上传至 PyPI，与 python/pyproject.toml 一致；npm 上的 r2pipe 为 2024-01-16 发布的 2.8.6，r2pipe-ts 为 0.4.0。Rust crate 位于独立的 r2pipe.rs 仓库；README 中的能力表标明了各语言支持哪些通信后端。",
    "除 WebAssembly 版本外，所有绑定都要与一个 radare2 进程通信：或在本地启动，或作为 TCP、HTTP、RAP 服务端连接；命令字符串和输出格式取决于所用的 radare2 版本。CI 在 Ubuntu 24.04 上安装 radare2 6.1.4 的 Debian 软件包，测试 Perl、Python、TypeScript、Ruby、Tcl、Vala、Swift 和 .NET 绑定。",
    "python-wasm 是独立的 r2pipe_wasm 包，通过 Wasmer 的 Python SDK 1.1.0 在 Python 内运行 radare2 的 wasi-api WebAssembly 构建，默认下载带有该构建的最新稳定版本。其 README 仅验证了 Linux x86_64 上的 CPython 3.9，示例固定使用 6.1.4，并报告已发布的 6.2.2 API 模块在启动时会触发陷阱。",
    "GitHub 未识别出覆盖整个仓库的许可证。Python、Python WASM、Go、.NET、Haskell 和 Erlang 目录附有 MIT 许可证文件，npm 包也声明为 MIT。待分析的二进制由使用者自行提供；TypeScript 测试附带一个测试文件 typescript/tests/fixtures/wasm-api.wasm。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/radareorg/radare2-r2pipe",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
