lighty-version

Crates.iolighty-version
lib.rslighty-version
version0.8.6
created_at2025-12-02 11:08:48.709313+00
updated_at2025-12-14 07:28:13.657574+00
descriptionMinecraft version management for Lighty Launcher
homepagehttps://github.com/Lighty-Launcher/LightyLauncherLib
repositoryhttps://github.com/Lighty-Launcher/LightyLauncherLib
max_upload_size
id1961611
size73,155
Hamadi (Kalandi)

documentation

https://docs.rs/lighty-launcher

README

lighty-version

Version metadata types for LightyLauncher.

Note

This is an internal crate for the LightyLauncher ecosystem. Most users should use the main lighty-launcher crate instead.

Features

  • Version Metadata: Comprehensive metadata structures for Minecraft versions
  • Builder Pattern: Construct version configurations easily
  • Type Safety: Strongly typed version information
  • Serialization: Full serde support for JSON import/export

Structure

lighty-version/
└── src/
    ├── lib.rs                  # Module declarations and re-exports
    ├── version_builder.rs      # Version builder pattern
    ├── lighty_builder.rs       # LightyUpdater builder
    └── loader_extensions_impl.rs # Loader-specific extensions

Usage

[dependencies]
lighty-version = "0.6.3"
use lighty_version::version_metadata::{VersionMetaData, VersionBuilder};

// Use version metadata
let metadata = VersionMetaData {
    id: "1.21".to_string(),
    main_class: "net.minecraft.client.main.Main".to_string(),
    // ... other fields
};

// Or use the builder
let builder = VersionBuilder::new()
    .id("1.21")
    .main_class("net.minecraft.client.main.Main")
    .build();

Types

VersionMetaData

Complete metadata for a Minecraft version including:

  • Version ID
  • Main class
  • Libraries
  • Assets
  • Arguments
  • Download URLs

VersionBuilder

Builder for constructing version metadata:

use lighty_version::version_metadata::VersionBuilder;

let builder = VersionBuilder::new()
    .id("1.21")
    .main_class("net.minecraft.client.main.Main")
    .asset_index("16")
    .build();

Integration

This crate is typically used with lighty-loaders to provide version information:

use lighty_loaders::version::Version;
use lighty_version::version_metadata::VersionMetaData;

// Version objects contain VersionMetaData internally
let version = Version::new(/* ... */);
let metadata: &VersionMetaData = version.get_metadata();

License

MIT

Links

Commit count: 0

cargo fmt