6 releases
| 0.2.4 | Dec 12, 2025 |
|---|---|
| 0.2.3 | Nov 27, 2025 |
| 0.2.1 | Sep 28, 2025 |
| 0.1.0 | Sep 28, 2025 |
#779 in Encoding
119 downloads per month
Used in 4 crates
7KB
58 lines
league-toolkit
Rust workspace for parsing, editing, and writing League of Legends file formats.
This repository hosts a set of crates that can be used individually or together via the umbrella crate league-toolkit.
Crates in this workspace
league-toolkit— Library for serializing and editing various League of Legends formats (feature-gated facade over the crates below)ltk_anim— Animation formats support for League Toolkitltk_file— Core IO and file abstractions for League Toolkitltk_mesh— Mesh parsing and structures for League Toolkitltk_meta— Metadata formats and utilities for League Toolkitltk_primitives— Primitive types and helpers for League Toolkitltk_texture— Texture decoding/encoding utilities for League Toolkitltk_wad— WAD archive reading/writing for League Toolkitltk_hash— Hashes implementation used by League Toolkitltk_io_ext— I/O extensions used by League Toolkit
Each crate lives under crates/<name>.
Getting started
Add the umbrella crate to your project (recommended):
# Cargo.toml
[dependencies]
league-toolkit = { version = "0.1", features = ["wad", "mesh", "texture"] }
Until a release is published, you can use the Git version:
[dependencies]
league-toolkit = { git = "https://github.com/LeagueToolkit/league-toolkit", features = ["wad", "mesh", "texture"] }
Or depend on individual crates directly, for example:
[dependencies]
ltk_wad = "0.1"
ltk_texture = "0.1"
Features (on league-toolkit)
The league-toolkit crate exposes feature flags to opt into specific subsystems:
anim— enableltk_animfile— enableltk_filemesh— enableltk_meshmeta— enableltk_metaprimitives— enableltk_primitivestexture— enableltk_texturewad— enableltk_wadhash— enableltk_hashserde— enable serde support where available
The default feature set enables most subsystems. Disable default features and opt-in selectively if you want a smaller dependency surface:
[dependencies]
league-toolkit = { version = "0.1", default-features = false, features = ["wad", "mesh"] }
Texture encoding (BC1/BC3) with intel-tex
BC1/BC3 encoding in ltk_texture is backed by the optional intel_tex_2 dependency behind the intel-tex feature on ltk_texture.
If you use the umbrella crate re-export (league_toolkit::texture), you still enable the texture feature on league-toolkit, but you enable intel-tex on ltk_texture directly:
[dependencies]
league-toolkit = { version = "0.5.0", features = ["texture"] }
ltk_texture = { version = "*", features = ["intel-tex"] }
Development
- Prerequisites: Rust stable toolchain
- Build:
cargo build - Test:
cargo test
Workspace membership is defined in the top-level Cargo.toml.
Releasing
This repository uses Release-plz to automate versioning and publishing to crates.io.
- On pushes to
main, Release-plz opens a release PR. - Merging the release PR triggers publishing of the configured crates.
Make sure the repository has the appropriate credentials configured (crates.io token or Trusted Publishing) before merging release PRs.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.