Crates.io | osu-db |
lib.rs | osu-db |
version | 0.3.0 |
source | src |
created_at | 2019-01-29 17:44:01.396536 |
updated_at | 2021-11-18 19:04:02.181904 |
description | Reading and writing of osu! binary files: `osu!.db`, `collection.db`, `scores.db` and `.osr` replay files. |
homepage | |
repository | https://github.com/negamartin/osu-db |
max_upload_size | |
id | 111434 |
size | 57,927 |
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.