Lightweight Musicbrainz database mirroring
  • Rust 92.9%
  • Nix 7.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
mib b954edd69d let build script calculate user-agent
it's just easier to make it look nice then (all my homies hate `concat!`)
2026-09-13 20:36:55 +02:00
musicbrainz@90886774d8 update to schema 2026-q2 2026-06-22 15:17:18 +02:00
src let build script calculate user-agent 2026-09-13 20:36:55 +02:00
.gitignore expose nix package 2026-08-30 00:26:25 +02:00
.gitmodules initial commit 2026-03-12 01:17:09 +01:00
build.rs let build script calculate user-agent 2026-09-13 20:36:55 +02:00
Cargo.lock include tag/commit in user agent 2026-09-13 20:15:06 +02:00
Cargo.toml include tag/commit in user agent 2026-09-13 20:15:06 +02:00
flake.lock cross compilation for windows 2026-09-13 19:04:51 +02:00
flake.nix cross compilation for windows 2026-09-13 19:04:51 +02:00
readme.md add links to, reword, and fix details in readme 2026-03-12 02:38:35 +01:00

syncbrainz

Lightweight Musicbrainz database mirroring tool.

Usage

To set up a fully functional Musicbrainz database, there are two steps;

  1. initialise the database (syncbrainz init),
  2. import a full data export (syncbrainz import)

after which you'll have a database populated with fairly recent data — half a week old, at most.

Hourly replication

To get data as recent as the hour, there are two additional steps;

  1. sign up for a Metabrainz live data feed (and donate if possible!),
  2. run the sync command (syncbrainz replicate)

this downloads any missing replication packets, verifies their integrity and authenticity, then applies them to the database. When the program exits, you'll have a fully up to date Musicbrainz database.

Important

Running the replication step as an hourly cron-job is a great idea, but it's very important that only one syncbrainz instance is running at a time. Configure your scheduling system such that it does not stop already running processes.