#replay #osu #文件格式 #解析器 #得分 #读取 #操作

osu-replay-parser

用于在 Rust 项目中使用回放数据的 Osu! 回放解析器

2 个不稳定版本

0.2.0 2022年8月15日
0.1.0 2022年8月12日

#1992 in 解析器实现

MIT/Apache

81KB
700

Osu! 回放解析器,用于 Rust

该项目目前处于早期开发阶段。

如果在使用库时遇到任何问题,请 打开一个 issue


一个 Rust 库,用于读取、解析和写入 Osu! 得分回放文件中的数据,以便在 Rust 项目中轻松操作回放。

该库是根据 Osu! 官方维基上解释的回放文件结构制作的 (https://osu.ppy.sh/wiki/en/Client/File_formats/Osr_%28file_format%29)。

用法

从文件路径解析回放

use osr_parser::Replay;

fn main() {
    let replay_path = Path::from("./assets/examples/replay-test.osr");

    let replay: Replay = Replay::open(&replay_path).unwrap();
    
    let player_name: String = replay.player_name;
    let is_a_full_combo: bool = replay.is_full_combo;
    let miss_count: u16 = replay.number_misses;
    let first_frame: ReplayFrame = replay.replay_data.frames[0];
}

从回放数据结构写入回放文件

use osr_parser::Replay;

fn main() {
    let replay_path = Path::from("./assets/examples/replay-test.osr");

    let replay: Replay = Replay::open(&replay_path).unwrap();
    
    let player_name: String = "New Player Name";
    
    replay.save("updated-replay.osr").unwrap();
}

依赖关系

~2.6–3.5MB
~70K SLoC