rbox gives you full control over your Rekordbox data.
Important
This project is not affiliated with Pioneer DJ, AlphaTheta Corp., or any related entities. The maintainers and contributors assume no liability for any data loss or damage to your Rekordbox library. "Rekordbox" is a registered trademark of AlphaTheta Corporation.
rbox is a Rust library for seamlessly interacting with Pioneer DJ's Rekordbox local and export data. Its goal is one comprehensive, general-purpose package that other projects can build on. It currently supports the following Rekordbox files:
- Rekordbox database: Query and update the Rekordbox v6/v7 master.db database through a type-safe ORM
- One Library: Read and write Rekordbox One Library (Device Library Plus) export files
- Device Library: Read and write Rekordbox DeviceSql (.pdb) database files
- Analysis Files: Read and write ANLZ files containing waveforms, beat grids, hot cues and more
- Settings Access: Read and write My-Setting files
- XML database: Read and write Rekordbox XML database files
| File | Read | Update | Create |
|---|---|---|---|
| Rekordbox database | ✓ | ✓ | ❌ |
| One Library | ✓ | ✓ | ✓ |
| Device Library | ✓ | ✓ | ✓ |
| Analysis Files | ✓ | ✓ | ✓ |
| Settings Files | ✓ | ✓ | ✓ |
| XML database | ✓ | ✓ | ✓ |
Tip
This project is still being actively developed and is in early stages, so expect some rough edges, API changes in the future and missing features. If you are looking for a more mature and battle-tested library, check the original pyrekordbox Python library.
rbox is built with Rust for maximum performance and safety, with additional language bindings:
- 🦀 Rust: The core library, providing fast and efficient access to Rekordbox data
- 🐍 Python: Integrate with Python applications for easy data manipulation
- ✨ JavaScript: Integrate with electron applications and Node.js environments
rbox is available on crates.io. Run the following Cargo command in your project directory:
cargo add rboxor add the following line to your Cargo.toml:
rbox = "0.3.0"rbox is available on PyPI. You can install it using pip:
pip install rboxThe Python bindings can also be built manually via pyo3 and maturin:
cd bindings/python
pip install -r requirements.txt
maturin developrbox is available on npm:
npm install rbox-jsThe JS bindings can also be built manually via napi-rs:
cd bindings/javascript
yarn install
yarn buildIf you encounter an issue or want to contribute to rbox, please feel free to get in touch, open an issue or create a new pull request! A guide for contributing to rbox and the commit-message style can be found in CONTRIBUTING.
For general questions or discussions about the library or Rekordbox, please use GitHub Discussions instead of opening an issue.
Can rbox analyze audio and generate analysis files?
Not yet.
rboxcan read and modify existing analysis files, but it cannot currently generate analysis data from audio. A goal of the project is to support audio processing and generate Rekordbox-compatible analysis files, including waveforms. This is planned work, with no release timeline yet.
Can I use rbox to prepare device exports without Rekordbox?
Yes.
rboxcan create and update both original Device Library (.pdb) and One Library (Device Library Plus) databases, using existing analysis files for the export. A complete workflow starting from unanalysed audio still requires analysis-file generation, which is a project goal.
Does rbox support Pro DJ Link?
Not yet. Pro DJ Link support is planned for the future, but there is no release timeline yet.
Thank you to everyone contributing to rbox through code, bug reports, testing, documentation, and ideas. Your contributions and shared knowledge help make these tools better for the community.
A special thank you to everyone who has contributed to pyrekordbox. Your code, bug reports, testing, documentation, and ideas helped build the foundation that rbox builds on today.
We are also grateful to the projects that have documented and reverse-engineered Rekordbox's formats and shared their findings openly. Their documentation, reference implementations, and sample files have been invaluable:
- Deep Symmetry's crate-digger and Rekordbox Export Analysis for detailed format documentation and binary schemas.
- rekordcrate for its extensive work on Rekordbox's binary formats.
- fourfour for additional export-format research and implementation references.
If rbox has helped you or saved you time, consider supporting its development - every coffee makes a difference!
This project is licensed under the GNU General Public License, version 3.0.
Earlier releases may have been available under different terms.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you shall be licensed under the same terms as this project, without any additional terms or conditions.