osu-db

Crates.ioosu-db
lib.rsosu-db
version0.3.0
sourcesrc
created_at2019-01-29 17:44:01.396536
updated_at2021-11-18 19:04:02.181904
descriptionReading and writing of osu! binary files: `osu!.db`, `collection.db`, `scores.db` and `.osr` replay files.
homepage
repositoryhttps://github.com/negamartin/osu-db
max_upload_size
id111434
size57,927
(negamartin)

documentation

README

osu-db

osu-db is an osu! binary file format encoder/decoder, providing support for loading, modifying and saving the following osu! file formats:

  • osu!.db: The main beatmap information cache osu! uses.
  • collection.db: A list of collections and the beatmaps they contain.
  • scores.db: Overview of all user scores.
  • .osr files: Individual in-depth score data of a single replay.

To use, simply add this line to your Cargo.toml:

osu-db = "0.3"

After that you will want to use the different load/save functions on the Listing (cached beatmap database), ScoreList (summary of all player scores), CollectionList (in-game beatmap collections) or Replay (a single in-depth standalone replay file).

For example, to change all of your osu!mania grades to SS+:

use osu_db::listing::{Listing, Grade};

// Load the listing to memory
let mut listing = Listing::from_file("osu!.db").unwrap();

// Modify listing in-place
for beatmap in listing.beatmaps.iter_mut() {
    beatmap.mania_grade = Grade::SSPlus;
}

// Save back to disk
listing.save("osu!.db").unwrap();

More details in the crate documentation.

osu-db has been tested to support osu!stable binaries of at least version 20211103, and will probably support newer binaries. Old binaries are supported, as old as 2014, although these are no longer tested and no guarantees are made.

Commit count: 24

cargo fmt