BAP (Binary Analysis Platform) vs Refinery
BAP (Binary Analysis Platform)
binaryanalysisplatform.github.ioRefinery
github.comSide by side
| Figure | BAP (Binary Analysis Platform) | Refinery |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Reverse Engineering Tools | 8.7 (#3) | 7.6 (#32) |
| License | The GitHub repository identifies the project license as MIT. | The project is licensed under the MIT License. |
| Purpose | BAP is a suite of utilities and libraries for analyzing binary programs. | Refinery is a SQL migration toolkit for Rust that runs migrations on a provided database connection. |
Plans
In their own words
BAP (Binary Analysis Platform)
BAP (Binary Analysis Platform) has no write-up on Specifiction yet; its figures are above.
Refinery
Refinery is a free, MIT-licensed SQL migration toolkit for Rust applications. It runs migrations against a database connection supplied by the application, either from embedded Rust code or through the refinery_cli command-line tool. Migrations can be SQL files or Rust modules whose migration function returns a String. Refinery records applied versions and metadata, then checks for missing or divergent migrations before running unapplied work. By default, each migration runs in its own transaction; grouped mode can place all migrations in one transaction. Migrations can also be built into a binary, so separate files are not needed at deployment. Listed drivers include postgres, tokio-postgres, mysql, mysql_async, rusqlite, and tiberius; SQLx can be used with a Config implementing Migrate. Driver selection is handled through features. Maintainers describe limited capacity to maintain additional drivers and point to external repositories, naming Klickhouse as an example. Refinery aims to support stable Rust, the previous Rust version, and nightly. To reverse a migration, users must create another migration with the reversing changes.