跳转到内容

共享节奏,无缝畅玩

在不同设备间同步您的 osu! 谱面

同步您的谱面

在多个设备之间智能同步您的 osu! 谱面库,无论您在哪里游玩,您的收藏始终保持最新。支持增量同步,超快速度。

管理谱面与合集

强大的谱面管理工具,帮助您组织、分类和维护您的谱面合集。完整的元数据支持,灵活的筛选和搜索。

分享您的合集

轻松将您精心制作的谱面合集分享给朋友。一键分享,朋友可直接导入,建立社区。

开源 MIT 许可

完全开源项目,采用 MIT 许可证,欢迎参与贡献和二次开发。透明的代码,信任的保证。



闪电般的性能

采用 RustDeno 等高性能技术栈,提供闪电般的速度和稳定性。毫秒级响应时间。

完全开源透明

完全开源的设计,您可以查看源代码、参与贡献、自由定制。社区驱动的开发模式。

跨平台支持

支持 WindowsmacOSLinux 等多个平台,轻松管理您的谱面,无缝切换。

生态系统完善

从核心库到服务器组件,Osynic 提供完整的生态系统,满足玩家和开发者的各种需求。


  1. 安装 Osynic 访问 入门指南 选择适合您的安装方式

  2. 导入您的谱面 Osynic 会自动检测您的 osu! 安装目录并导入现有谱面

  3. 创建您的合集 使用直观的界面组织和分类您的谱面

  4. 开始同步 启用云同步,随时随地访问您的谱面

  5. 分享给朋友 一键生成分享链接,让朋友也能体验


// Beatmapset Get
use osynic_osuapi::error::Result;
use osynic_osuapi::v2::client::request::client::OsynicOsuApiV2Client;
use osynic_osuapi::v2::interface::beatmapsets::IBeatmapsets;
use osynic_osuapi::v2::model::oauth::structs::o_token::OToken;
#[tokio::main]
async fn main() -> Result<()> {
dotenvy::dotenv().ok();
let access_token = std::env::var("ACCESS_TOKEN").expect(
"Please set the ACCESS_TOKEN environment variable to a valid osu! API v2 access token",
);
let client = OsynicOsuApiV2Client::new(OToken {
access_token,
refresh_token: None,
expires_in: 86400,
token_type: "Bearer".to_string(),
});
let beatmapset = client.beatmapsets.get_beatmapset(2105932).await?;
println!("{:?}", beatmapset);
Ok(())
}

  • 文件夹osynic/
    • 文件夹osynic_osudb/ Rust
      • 数据库解析库
    • 文件夹osynic_osuapi/ Rust
      • API 实现
    • 文件夹osynic_serializer/ Rust
      • 序列化工具
    • 文件夹osynic_downloader/ Rust
      • 下载工具
    • 文件夹deno_osynic_oauth/ TypeScript
      • OAuth 服务器
    • 文件夹deno_osynic_cors/ TypeScript
      • CORS 代理

特性Osynic其他工具
性能⚡⚡⚡ 极速⚡ 普通
开源部分
跨平台完全支持有限
社区活跃中等
文档完整基础

完整文档

深入了解 Osynic 的每一个功能和特性

报告问题

在 GitHub Issues 中报告 Bug 或提出功能建议

分享想法

在 Discussions 中分享您的使用经验和创意

参与贡献

发送 Pull Request,成为 Osynic 的贡献者



Osynic — 让每一个 osu! 玩家都能优雅地管理和分享他们的谱面 🎮✨

Made with ❤️ by the Osynic Community