{"id":16343679,"url":"https://github.com/tlater/modpackr","last_synced_at":"2025-11-06T05:30:34.357Z","repository":{"id":90247659,"uuid":"266394578","full_name":"TLATER/modpackr","owner":"TLATER","description":"A Minecraft modpack management library","archived":false,"fork":false,"pushed_at":"2020-05-23T19:20:57.000Z","size":36,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-27T16:30:33.396Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TLATER.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":"2020-05-23T18:19:44.000Z","updated_at":"2024-11-12T20:25:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4cfac42-270b-4091-a0f5-7b9ca6d6de1f","html_url":"https://github.com/TLATER/modpackr","commit_stats":{"total_commits":6,"total_committers":2,"mean_commits":3.0,"dds":"0.16666666666666663","last_synced_commit":"f4f46374ccf5a9e25a471322558f2b869894dc17"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLATER%2Fmodpackr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLATER%2Fmodpackr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLATER%2Fmodpackr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLATER%2Fmodpackr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TLATER","download_url":"https://codeload.github.com/TLATER/modpackr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239484211,"owners_count":19646429,"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":[],"created_at":"2024-10-11T00:25:22.892Z","updated_at":"2025-02-18T13:45:59.136Z","avatar_url":"https://github.com/TLATER.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Rust Tests](https://github.com/TLATER/modpackr/workflows/Rust/badge.svg)\n\n*Note: This is very, very WIP*\n\n# Modpackr\n\nA small library to manage Minecraft modpacks. The idea is to provide\nthis as a webassembly library to create tools to manage modpacks both\nin the browser and in CI automation (or simply on the terminal if you\nprefer hand-editing text files like a sane person (:).\n\nThis should provide users with an easier experience creating\nmodpacks - finding and selecting mods instead of being frustrated over\nhow to get what where and whether it all works together.\n\nGoals are also to include simple ways of mass-updating mods in a\nmodpack, and managing stability tracking.\n\nThis all in a declarative, human-readable text format for convenient,\nup-front editing and version control.\n\n## Features\n\n(Currently) planned features:\n- [ ] Mod configuration validation\n  - [x] Check whether all mods have versions for the selected version\n        of Minecraft\n  - [ ] Check whether all dependencies are met\n  - [ ] Check if we mixed Forge/Fabric mods\n- [ ] Varied mod source compatibility\n  - [x] Curse mods\n- [ ] Varied modpack outputs\n  - [ ] Simple vanilla minecraft launcher profile output\n  - [ ] MultiMC/Twitch launcher output\n\n## Example file format\n```yaml\nminecraft:\n  version: 1.12.2\n\nmods:\n  curseForge:\n    # UI improvement stuffs\n    - name: jei\n      # Recipes...\n      id: 238222\n```\n\n## Proof-of-concept CLI implementation\n\nThe proof-of-concept CLI implementation currently checks whether a\nhard-coded configuration in `examples/testpak.yaml` is \"valid\", i.e.,\nwhether all mods are available for the given Minecraft version.\n\n## Design decisions\n\n* Why YAML?\n  - Not JSON because it should be human-editable (this is configuration...)\n  - Not XML because it's even worse at being human-editable than JSON\n  - Not TOML because TOML doesn't have very convenient object-in-list syntax\n  - Not ini because ini is too simplistic\n  - Not RON because it's a little too novel for generic non-rust people\n  - Nothing else because nothing else has default implementations for serde\n* Why Rust?\n  - WebAssembly makes it easy to provide a web GUI and a CLI interface\n    with a generic library.\n  - NodeJS could do similar, but I've just personally had enough of\n    Java/TypeScript.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftlater%2Fmodpackr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftlater%2Fmodpackr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftlater%2Fmodpackr/lists"}