#osu #db #collection #replay #scores #beatmap #binary

osu-db

读取和写入 osu! 二进制文件:osu!.dbcollection.dbscores.db.osr 回放文件

3 个版本 (重大更改)

0.3.0 2021年11月18日
0.2.0 2020年10月30日
0.1.0 2019年1月29日

#1173 in 解析器实现

Download history 8/week @ 2024-03-11 8/week @ 2024-03-18 10/week @ 2024-03-25 106/week @ 2024-04-01 12/week @ 2024-04-08 8/week @ 2024-04-15 7/week @ 2024-04-22 4/week @ 2024-04-29 6/week @ 2024-05-06 14/week @ 2024-05-13 17/week @ 2024-05-20 7/week @ 2024-05-27 7/week @ 2024-06-03 11/week @ 2024-06-10 19/week @ 2024-06-17 13/week @ 2024-06-24

每月 51 次下载
用于 rosu-v2

Unlicense

57KB
1.5K SLoC

osu-db

osu-db 是一个 osu! 二进制文件格式编码/解码器,提供加载、修改和保存以下 osu! 文件格式的支持

  • osu!.db:osu! 使用的主要 beatmap 信息缓存。
  • collection.db:包含的集合和 beatmap 列表。
  • scores.db:所有用户得分的概述。
  • .osr 文件:单个回放的单个详细得分数据。

使用时,只需将此行添加到您的 Cargo.toml

osu-db = "0.3"

之后,您将想要使用 Listing(缓存的 beatmap 数据库)、ScoreList(所有玩家得分的摘要)、CollectionList(游戏中的 beatmap 集合)或 Replay(单个详细独立的回放文件)上的不同加载/保存函数。

例如,要将所有 osu!mania 评分更改为 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();

更多详细信息请参阅组件文档。

osu-db 已测试以支持至少版本 20211103osu!stable 二进制文件,并可能支持较新的二进制文件。旧二进制文件受支持,可追溯到 2014 年,尽管这些不再进行测试,也不提供任何保证。

依赖关系

~1.8–2.6MB
~46K SLoC