Boomerang vs Refinery
Boomerang
github.comRefinery
github.comSide by side
| Figure | Boomerang | Refinery |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Reverse Engineering Tools | 8.5 (#6) | 7.6 (#32) |
| License | The repository describes Boomerang as BSD licensed. | The project is licensed under the MIT License. |
| Purpose | Boomerang is an open-source machine-code decompiler that attempts to turn executable files into high-level source code. | Refinery is a SQL migration toolkit for Rust that runs migrations on a provided database connection. |
Plans
In their own words
Boomerang
Boomerang is an open-source decompiler that translates supported machine-code binaries into C source code. It supports x86 (IA-32 only), PPC, and ST20 architectures, and accepts ELF, PE, DOS MZ, DOS/4GW LE, and Mach-O files. Users can run it as a command-line tool or a GUI application. The project describes its license as BSD, and the software is free. Build instructions cover Linux, macOS, and Windows, but compiling requires a 64-bit operating system and a C++17 compiler; 32-bit systems are not supported. Documented prerequisites include CMake, Qt5, Capstone, GNU bison, and GNU flex. Precompiled packages are available for release versions, although the project recommends building the development branch from source. Unit and regression tests are provided, but the README says the regression test suite cannot be built on Windows. The maker describes the release as intended for developers and experimenters and warns that large-binary decompilation may disappoint. Decompiled output does not recreate the original source file and may differ from it. The project directs users to its GitHub issue tracker for bug reports.
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.