uranium-rs

Crates.iouranium-rs
lib.rsuranium-rs
version1.0.3
created_at2025-07-23 11:54:58.669683+00
updated_at2025-08-03 09:53:04.344477+00
descriptionLib for downloading/making minecraft and modpacks
homepage
repositoryhttps://github.com/sergious234/uranium-rs
max_upload_size
id1764706
size3,464,039
Sergious (sergious234)

documentation

README

🛠️ Uranium

API Docs

Uranium is a Rust library for downloading Minecraft game files and Modrinth mods or modpacks. It provides:

  • A generic, asynchronous downloader
  • A trait-based system so users can plug in their own downloader implementation

This crate is made for users who want to make their own minecraft launcher but dont want to write all the process from scratch. Uranium provides an easy way to download the minecraft files and also modpacks from ModRinth (Curse is in progress). Uranium also has functions to interact with the default minecraft launcher profiles, so you can read already existing profiles and add new ones (it is interoperable with other launchers).

How to download minecraft ?

It's that simple:

let mut downloader = MinecraftDownloader::<Downloader>::init("/home/user/.minecraft", "1.20.1").await?;
downloader.start().await;

FileDownloader trait

Uranium's FileDownloader trait enables users to implement custom downloaders to their needs. If you feel the Downloader Uranium provides is slow or it doesn't satisfy your need go and write your own !

Then change the generic parameter like this and you'll be using your own downloder:

let mut downloader = MinecraftDownloader::<MyDownloader>::init("/home/user/.minecraft", "1.20.1").await?;
downloader.start().await;

Rinth

Uranium also can download modpacks with the modrith format with RinthDownloader.

RinthDownloader::<Downloader>::new("path/to/modpack", "installation/path")?;

Curse

Curse is under developing right now, it has a specific downloader but with no guarantees. Same API as Rinth:

CurseDownloader::<Downloader>::new("path/to/modpack", "installation/path").await;
Commit count: 104

cargo fmt