{"id":21822959,"url":"https://github.com/justcabbage/osu-parser","last_synced_at":"2025-03-21T11:26:02.642Z","repository":{"id":265098505,"uuid":"785865802","full_name":"JustCabbage/osu-parser","owner":"JustCabbage","description":"C++20 compatible parser for osu! filetypes","archived":false,"fork":false,"pushed_at":"2025-03-14T20:52:18.000Z","size":17,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-14T21:36:13.736Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JustCabbage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-04-12T19:44:46.000Z","updated_at":"2025-03-14T20:52:23.000Z","dependencies_parsed_at":"2024-11-27T17:18:47.442Z","dependency_job_id":"b8804c20-1f9e-48fb-b80b-e3dd7a526b8b","html_url":"https://github.com/JustCabbage/osu-parser","commit_stats":null,"previous_names":["justcabbage/osu-parser"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustCabbage%2Fosu-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustCabbage%2Fosu-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustCabbage%2Fosu-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustCabbage%2Fosu-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JustCabbage","download_url":"https://codeload.github.com/JustCabbage/osu-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244788802,"owners_count":20510435,"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":["cpp","osu","osu-libraries","osugame","parser","parsing"],"created_at":"2024-11-27T17:18:44.821Z","updated_at":"2025-03-21T11:26:02.606Z","avatar_url":"https://github.com/JustCabbage.png","language":"C++","readme":"# osu!parser [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\n\n### A C++ library to parse osu! filetypes\n\n# Installation\n```\ngit clone --recursive https://github.com/JustCabbage/osu-parser.git\n```\n## Project Setup\n```CMake\ntarget_include_directories(ProjectName PUBLIC osu-parser/include)\n```\n# Examples:\n\n## Database Parsing\n```c++\n#include \u003cosu!parser/Parser.hpp\u003e\n\nint main()\n{\n    const std::string GamePath = std::string(getenv(\"localappdata\")) + \"\\\\osu!\\\\\";\n\n    Parser::Database ParsedDatabase(GamePath + \"osu!.db\");\n\n    for(const auto\u0026 Beatmap : ParsedDatabase.Beatmaps)\n    {\n        std::cout \u003c\u003c Beatmap.BeatmapHash \u003c\u003c \"\\n\";\n    }\n}\n```\n\n## Beatmap Parsing\n```c++\n#include \u003cosu!parser/Parser.hpp\u003e\n\nint main()\n{\n    const std::string SongsPath = std::string(getenv(\"localappdata\")) + \"\\\\osu!\\\\Songs\\\\RandomBeatmap\\\\Beatmap.osu\";\n    \n    Parser::Beatmap ParsedBeatmap(SongsPath);\n\n    std::cout \u003c\u003c \"Audio Filename - \" \u003c\u003c ParsedBeatmap.General.AudioFilename \u003c\u003c \"\\n\";\n    std::cout \u003c\u003c \"Total Hit Objects - \" \u003c\u003c ParsedBeatmap.HitObjects.size() \u003c\u003c \"\\n\";\n    std::cout \u003c\u003c \"Total Timing Points - \" \u003c\u003c ParsedBeatmap.TimingPoints.size() \u003c\u003c \"\\n\";\n}\n```\n\n## Replay Parsing\n```c++\n#include \u003cosu!parser/Parser.hpp\u003e\n\nint main()\n{\n    const std::string ReplayPath = std::string(std::getenv(\"localappdata\")) + \"\\\\osu!\\\\Replays\\\\MyReplay.osr\";\n    \n    Parser::Replay ParsedReplay(ReplayPath);\n\n    std::cout \u003c\u003c \"Parsed \" \u003c\u003c ParsedReplay.Actions.size() \u003c\u003c \" Replay Actions\\n\";\n    std::cout \u003c\u003c \"Replay Score - \" \u003c\u003c ParsedReplay.Score \u003c\u003c \"\\n\";\n}\n```\n\n# Credits\n- [osu!wiki](https://github.com/ppy/osu/wiki/)\n- [pocketlzma](https://github.com/SSBMTonberry/pocketlzma)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustcabbage%2Fosu-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustcabbage%2Fosu-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustcabbage%2Fosu-parser/lists"}