#file-downloader #minecraft

uranium-rs

Lib for downloading/making minecraft and modpacks

3 stable releases

Uses new Rust 2024

1.0.3 Aug 3, 2025
1.0.2 Aug 1, 2025
1.0.1 Jul 23, 2025

#370 in Games

Download history 8/week @ 2025-08-14 20/week @ 2025-08-21 2/week @ 2025-08-28 13/week @ 2025-09-04 2/week @ 2025-09-25 5/week @ 2025-10-02

105 downloads per month

GPL-2.0 license

3MB
3K SLoC

Contains (JAR file, 2.5MB) fabric-api-0.100.7+1.21.jar, (JAR file, 1MB) sodium-fabric-0.5.11+mc1.21.jar, (Zip file, 2KB) tests/data/test1.mrpack

🛠️ 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;

Dependencies

~15–32MB
~417K SLoC