Skip to content

Lighty-Launcher/LightyLauncherLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LightyLauncherLib

Maintained Crates.io Documentation License: MIT Rust Version Maintainer

LightyLauncher banner

A launcher built with LightyLauncherLib

exemple_launcher_with_lightylauncherlib_small.webm

Quick start

[dependencies]
lighty-launcher = { version = "26.5.12", features = ["vanilla"] }
tokio = { version = "1", features = ["full"] }
anyhow = "1.0"
use lighty_launcher::prelude::*;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    AppState::init("MyLauncher")?;

    let mut instance = VersionBuilder::new(
        "my-instance",
        Loader::Vanilla,
        "",
        "1.21.1",
    );

    let mut auth = OfflineAuth::new("Player123");
    let profile = auth.authenticate().await?;

    instance
        .launch(&profile, JavaDistribution::Temurin)
        .run()
        .await?;

    Ok(())
}

Microsoft auth, modpacks, event streams, every loader — runnable samples in examples/.

What you get

  • Light. Only ships what you use. A pure-Fabric build never pulls in the Forge pipeline.
  • Fast. Mods, libs, assets, resourcepacks, shaders — downloaded in parallel.
  • Mods & modpacks just work. Drop a Modrinth slug or a CurseForge id and the file lands in the right folder. .mrpack and .zip modpacks supported out of the box.
  • Tokens stay yours. Microsoft and Azuriom secrets can't leak through logs or JSON dumps. OS keychain storage is one method call away.
  • You see everything. Typed events stream every step on a broadcast bus — perfect for a real-time UI.

Architecture

lighty-launcher/             # Root crate (prelude + feature gates)
└── crates/
    ├── core/                # AppState, HTTP, hashing, extract
    ├── auth/                # Offline / Microsoft / Azuriom
    ├── event/               # Broadcast bus + typed events
    ├── java/                # JRE auto-download
    ├── launch/              # Install + game lifecycle
    ├── loaders/             # Vanilla / Fabric / Quilt / Forge / NeoForge
    ├── modsloader/          # Modrinth + CurseForge + modpack pipelines
    └── version/             # VersionBuilder

Cargo features

Feature Effect
vanilla / fabric / quilt / neoforge / forge Enable that loader (forge covers modern + legacy 1.7.10–1.12.2)
lighty_updater Custom updater backend (auto-pulls vanilla/fabric/quilt/neoforge/forge)
all-loaders Every loader above
modrinth Modrinth API + .mrpack modpack support
curseforge CurseForge API + .zip modpack support (requires API key)
all-mods Both modrinth and curseforge
events Typed broadcast events (LaunchEvent, ModloaderEvent, …)
keyring OS-keychain storage for auth tokens (opt-in)
tracing Structured logging via tracing

Mix and match:

lighty-launcher = { version = "26.5.12", features = ["fabric", "modrinth", "events"] }

Documentation

📚 Full docs on GitBook: https://hamadi.gitbook.io/lightylauncher

Per-crate API reference next to the code:

Crate What it does
lighty-core App state, HTTP, hashing, archive extract
lighty-auth Offline / Microsoft / Azuriom auth
lighty-event Broadcast event bus
lighty-java JRE download and discovery
lighty-launch Install orchestrator + game runner
lighty-loaders Minecraft loader implementations
lighty-modsloader Mod sources + modpack parsers
lighty-version Fluent VersionBuilder

Contributing

PRs welcome — see CONTRIBUTING.md.

License

MIT.

Related

  • LightyUpdater — companion server for custom modpack distribution.
  • FlowUpdater — Java launcher library by FlowArg, one of the early inspirations for this project.

Acknowledgements

Special thanks to FlowArg whose work on FlowUpdater provided valuable guidance and direction in the early stages of this project.

Thanks to everyone who has contributed — issues, PRs, and feedback all help make this library better.

About

A modern Minecraft launcher library for Rust supporting multiple mod loaders

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages