{"id":28204003,"url":"https://github.com/islatri/leptos_osuapi_playground","last_synced_at":"2026-04-26T22:31:18.093Z","repository":{"id":293439216,"uuid":"982279336","full_name":"Islatri/leptos_osuapi_playground","owner":"Islatri","description":"美观、现代化的 OsynicOsuapi 演示网站, 基于Leptos框架开发  Beautiful, modern OsynicOsuapi demo website, developed with the Leptos framework ","archived":false,"fork":false,"pushed_at":"2025-05-15T10:29:46.000Z","size":4846,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-15T10:43:47.367Z","etag":null,"topics":["api-client","fluent","leptos","osu","osu-api","rust","wasm","website"],"latest_commit_sha":null,"homepage":"https://osynic-osuapi.deno.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Islatri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-12T16:32:55.000Z","updated_at":"2025-05-15T10:29:49.000Z","dependencies_parsed_at":"2025-05-15T10:44:53.552Z","dependency_job_id":"71cdde91-194b-4717-b46e-18cb1d66d6f3","html_url":"https://github.com/Islatri/leptos_osuapi_playground","commit_stats":null,"previous_names":["islatri/leptos_osuapi_playground"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islatri%2Fleptos_osuapi_playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islatri%2Fleptos_osuapi_playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islatri%2Fleptos_osuapi_playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islatri%2Fleptos_osuapi_playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Islatri","download_url":"https://codeload.github.com/Islatri/leptos_osuapi_playground/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islatri%2Fleptos_osuapi_playground/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259092515,"owners_count":22804027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","fluent","leptos","osu","osu-api","rust","wasm","website"],"created_at":"2025-05-17T04:10:33.645Z","updated_at":"2026-04-26T22:31:18.087Z","avatar_url":"https://github.com/Islatri.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD033 MD041 MD045 MD026 --\u003e\n[![OSUAPIV1CN.png](https://s2.loli.net/2025/11/05/ahR96WKd5u1UrVy.png)](https://osynic-osuapi.deno.dev/)\n\n\u003ch1 align=\"center\" tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eLeptosOsuapiPlayground\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.rust-lang.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Rust-1.85%2B-blue\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://crates.io/crates/osynic_osuapi\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/osynic_osuapi\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://docs.rs/osynic_osuapi\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/docsrs/osynic_osuapi/0.1.0\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://osynic-osuapi.deno.dev\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Deno-white?logo=deno\u0026logoColor=black\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/islatri/leptos_osuapi_playground\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/DRnZSES3BC\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/chat-discord-7289da.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/osynicite\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy%20me-a%20coffee-orange.svg?style=flat-square\"/\u003e\u003c/a\u003e\n\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    美观、现代化的 OsynicOsuapi 演示网站, 基于Leptos框架开发\n\u003c/p\u003e\n\n\u003chr /\u003e\n\n[中文版本](README.md) | [English Version](README_EN.md)\n\n# 🎮 LeptosOsuapiPlayground\n\n## 📋 项目简介\n\nLeptosOsuapiPlayground 是一个基于 Rust Leptos 框架开发的现代化 Web 应用，它展示了 [OsynicOsuapi](https://github.com/osynicite/osynic_osuapi) 库的功能和用法。通过 WebAssembly (WASM) 技术，OsynicOsuapi 能够直接在浏览器中与 osu! API 进行交互，无需后端服务器处理请求。\n\n很显然，由于CORS的问题，不代理直接在浏览器中使用V1的API会遇到跨域问题（毕竟WASM部分是浏览器前端发的请求嘛），所以用[Deno](https://deno.dev)来搭建了一个中转服务器[osynic-cors.deno.dev](https://osynic-cors.deno.dev)，配合WASM客户端的`proxy_url`来实现代理请求；\n\n目前网站通过[Deno](https://deno.dev)部署在[osynic-osuapi.deno.dev](https://osynic-osuapi.deno.dev/)，支持中日韩德法俄英等多种语言；\n\n这个项目不仅是 OsynicOsuapi 库的一个实际应用示例，也是学习 Rust、Leptos 和 WASM 技术的绝佳资源。\n\n## ✨ 特性\n\n- **🚀 高性能**：基于 Rust 构建，提供卓越的性能和内存安全性\n- **🛡️ 类型安全**：利用 Rust 的强类型系统，在编译时捕获错误\n- **🌐 WASM 兼容**：直接在浏览器中运行，无需后端服务\n- **📊 完整 API 支持**：支持 osu! API v1 和 v2 的大多数端点\n- **📱 响应式设计**：适配各种屏幕尺寸的美观界面\n- **⚡ 实时演示**：提供实时 API 请求和响应展示\n\n## 🚀 快速开始\n\n### 🌐 在线体验\n\n访问 [https://osynic-osuapi.deno.dev](https://osynic-osuapi.deno.dev) 立即体验 LeptosOsuapiPlayground。\n\n您需要自己的 osu! API 密钥才能使用演示功能。如果没有，可以在 [osu! 个人设置页](https://osu.ppy.sh/home/account/edit) 的\"旧版本API\"部分申请一个。\n\n### 💻 本地运行\n\n```bash\n# 克隆仓库\ngit clone https://github.com/Islatri/leptos_osuapi_playground.git\ncd leptos_osuapi_playground\n\n# 安装依赖（需要 Rust 和 Cargo）\ncargo install trunk\nrustup target add wasm32-unknown-unknown\n\n# 启动开发服务器\ntrunk serve\n```\n\n然后在浏览器中访问 `http://localhost:1420` 即可。\n\n## 📂 项目结构\n\n```bash\nleptos_osuapi_playground/\n├── src/                    # 源代码目录\n│   ├── components/         # UI 组件\n│   ├── layouts/            # 布局组件\n│   ├── stores/             # 状态管理\n│   ├── i18n.rs             # 国际化文件\n│   ├── main.rs             # 应用入口\n│   ├── index.css           # 全局样式\n│   └── app.rs              # 主应用组件\n├── public/                 # 静态资源\n├── locales/                # 翻译文件 (.ftl)\n├── tailwind.config.js      # Tailwind CSS 配置\n├── Cargo.toml              # 项目配置\n├── Trunk.toml              # Trunk 配置\n├── index.html              # HTML 入口\n└── README.md               # 项目说明\n```\n\n## 🔍 API 演示功能\n\nLeptosOsuapiPlayground 提供了两种主要的 API 查询功能：\n\n### 🎵 谱面查询\n\n输入谱面集 ID，获取该谱面集的详细信息，包括：\n\n- 标题和艺术家\n- 难度名称和星级\n- BPM 等技术信息\n\n### 👤 用户查询\n\n输入用户名或用户 ID，获取该用户的详细信息，包括：\n\n- 用户名和用户 ID\n- 国家和排名\n- PP 值和准确度\n- 游戏次数等统计数据\n\n## 🛠️ 本地开发\n\n### 📋 前提条件\n\n- Rust 工具链 (1.85+)\n- trunk (用于打包 WASM 应用)\n- wasm32-unknown-unknown 目标\n\n### ⚙️ 环境设置\n\n```bash\nrustup default stable\nrustup target add wasm32-unknown-unknown\ncargo install trunk\n```\n\n### 🔧 开发模式\n\n```bash\ntrunk serve --open\n```\n\n### 📦 构建生产版本\n\n```bash\ntrunk build --release\n```\n\n## 💻 技术栈\n\n- [🦀 Rust](https://www.rust-lang.org/) - 系统编程语言\n- [🔄 Leptos](https://github.com/leptos-rs/leptos) - Rust 前端框架\n- [⚡ WebAssembly (WASM)](https://webassembly.org/) - 浏览器中运行的二进制格式\n- [🎮 OsynicOsuapi](https://github.com/osynicite/osynic_osuapi) - Rust osu! API 客户端\n- [🌐 LeptosFluent](https://github.com/mondeja/leptos-fluent) - 国际化框架\n\n## 🤝 贡献指南\n\n我们欢迎各种形式的贡献！请按照以下步骤参与：\n\n1. Fork 本仓库\n2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`)\n3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)\n4. 推送到分支 (`git push origin feature/amazing-feature`)\n5. 开启一个 Pull Request\n\n## 📜 许可证\n\n本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件\n\n## ❤️ 致谢\n\n- [osu!](https://osu.ppy.sh/) 提供精彩的游戏和 API\n- Rust 和 Leptos 社区的持续支持\n- 所有为项目做出贡献的开发者\n\n## ⚠️ 免责声明\n\nLeptosOsuapiPlayground 是非官方项目，与 osu! 官方无关。本项目仅用于学习和展示目的。\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003e由 Islatri 用 ❤️ 构建\u003c/sub\u003e\n  \u003cbr\u003e\n  \u003csub\u003e© 2025 Osynicite. OsynicOsuapi 和 LeptosOsuapiPlayground 是非官方项目, 与 osu! 官方无关.\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fislatri%2Fleptos_osuapi_playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fislatri%2Fleptos_osuapi_playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fislatri%2Fleptos_osuapi_playground/lists"}