#lol #riot-games #native #api #base64 #cargo #irelia

irelia_encoder

A Rust wrapper around the native LoL APIs

6 releases

0.1.5 Dec 29, 2024
0.1.4 Feb 6, 2024
0.1.3 Oct 6, 2023
0.1.2 Jul 15, 2023
0.1.1 Jun 23, 2023

#4 in #riot-games

22 downloads per month
Used in 2 crates

MIT license

31KB
506 lines

Irelia

Crates.io Total Downloads GitHub Repo stars Crates.io Version docs.rs

Irelia is a wrapper for the local https APIs provided by riot games for LoL


[dependencies]
irelia = "0.9"

Cargo Features


This crate is designed with modularity in mind, and as such API support has been split into different cargo features.

By default, everything but the replay feature is enabled

  • ["full"] - enables support for all APIs avaiable in the client by default (enabled by default)
  • ["ws"] - enables support for the LCU websocket
  • ["in_game"] - enables support for the native in game API
  • ["replay"] - enables the replay API interface (disabled by default)

Making a request to the LCU


Making a request to the LCU with irelia is simple

use irelia::{Error, RequestClient, rest::LcuClient};
use serde_json::Value;

#[tokio::main]
async fn main() {
    let lcu_client = irelia::rest::LcuClient::connect().unwrap();

    let current_summoner: Value = lcu_client
        .get("/lol-summoner/v1/current-summoner")
        .await
        .unwrap();

    println!("{current_summoner}");
}

Up-to-date examples can always be found here


lib.rs:

This decoder is largely taking from this article. https://dev.to/tiemen/implementing-base64-from-scratch-in-rust-kb1 It goes into detail about the entire thing, and why it works the way it does, and I highly recommend reading it Very big thanks to Tiemen for writing it!

The usage of u64s as byte arrays is taken from the base64 crate, which is under the MIT license

No runtime deps