Skip to content
dylanljonesPublic

About

Library for interacting with the local and export data of Pioneers Rekordbox DJ software. Written in Rust, with Python/JavaScript bindings.

Topics

Resources

Code of conduct

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Repository files navigation

rbox

rbox gives you full control over your Rekordbox data.

Crates.io PyPI JS


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.

Language support

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

Installation

🦀 Rust

rbox is available on crates.io. Run the following Cargo command in your project directory:

cargo add rbox

or add the following line to your Cargo.toml:

rbox = "0.3.0"

🐍 Python

rbox is available on PyPI. You can install it using pip:

pip install rbox

The Python bindings can also be built manually via pyo3 and maturin:

cd bindings/python
pip install -r requirements.txt
maturin develop

✨ JavaScript

rbox is available on npm:

npm install rbox-js

The JS bindings can also be built manually via napi-rs:

cd bindings/javascript
yarn install
yarn build

Development

If 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.

FAQ

Can rbox analyze audio and generate analysis files?

Not yet. rbox can 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. rbox can 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

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:

Sponsor

If rbox has helped you or saved you time, consider supporting its development - every coffee makes a difference!

BuyMeACoffee

License

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.

About

Library for interacting with the local and export data of Pioneers Rekordbox DJ software. Written in Rust, with Python/JavaScript bindings.

Topics

Resources

Code of conduct

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages