44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
# mc-launcher-rs
|
|
|
|
A simple minecraft launcher, in Rust
|
|
|
|
## Goal
|
|
The goal of this project is for me to learn a little bit of Rust, and experiment with the ecosystem.
|
|
The current scope of the project is just downloading minecraft and launching it.
|
|
|
|
Maybe modloader after all is stable-ish
|
|
|
|
## Stack
|
|
// Todo, link
|
|
| Usage | Choice |
|
|
| -------- | ----------- |
|
|
| UI | egui |
|
|
| Async | tokio |
|
|
| HTTP | reqwest |
|
|
| JSON | serde |
|
|
| Hashing | sha1 |
|
|
| Archives | zip |
|
|
| Folders | directories |
|
|
| Errors | anyhow |
|
|
| Logs | tracing |
|
|
|
|
## Roadmap
|
|
Do the download logic, then the UI.
|
|
|
|
Download:
|
|
[x] Read the manifest
|
|
[x] Manifest -> JSON
|
|
[] Interpret the data
|
|
[] Download from the JSON -> HTTP/Tokio
|
|
[] Go from sequential to parallel
|
|
|
|
## Structure
|
|
`core` -> all the launcher stuff, version manifest, JSON, download, hashes, launch args...
|
|
`cli` -> a small wrapper that calls the core and display text
|
|
`gui` -> another small wrapper that calls the core and displays it with `egui`
|
|
|
|
|
|
## Links
|
|
https://piston-meta.mojang.com/mc/game/version_manifest_v2.json
|
|
This one is the main manifest
|