#osu #beatmap #file #parse #manage #wiki #file-format

osu-beatmap-parser

Rust library to parse .osu beatmap file and manage beatmap data

1 unstable release

0.14.0 Sep 8, 2022

#2119 in Parser implementations

MIT/Apache

140KB
2.5K SLoC

Osu Beatmap Parser for Rust

The project is currently in an early-development stage.

Please OPEN AN ISSUE if you encounter any problems using the library.


A Rust library to read, parse and write contained data of an Osu! beatmap file to easily manipulate beatmap data in a Rust project.

This library was made according how a .osu beatmap file is structured explained on the official wiki of Osu! (https://osu.ppy.sh/wiki/en/Client/File_formats/Osu_%28file_format%29).

Usage

Parsing a beatmap file (.osu)

use osu_beatmap_parser::BeatmapLevel;

fn main() {
    let beatmap_path = Path::from("./assets/examples/test.osu");

    let beatmap: BeatmapLevel = BeatmapLevel::open(&beatmap_path).unwrap();
    
    // Editing the approach rate
    beatmap.difficulty.approach_rate = 9;
    
    // Getting all the hit objects
    let objects = beatmap.hitobjects;
}

Dependencies

~2.5–4MB
~73K SLoC