
About The Project

Lyceris is written with functional programming paradigm to achieve simplicity. It supports Microsoft authentication, loaders like Fabric, Quilt (more will be implemented soon), multi-threaded control system and download parallelism. It also automatically downloads necessary Java version. Library name comes from a character from Sword Art Online anime.
Getting Started
cargo add lyceris
Usage
This is the example implementation with using Quilt mod loader in version 1.20.
Don't forget to change the game directory path!
async fn launch() {
let config = Config {
game_dir: "Path to the game directory".into(),
version: "1.20".to_string(),
authentication: auth::AuthMethod::Offline {
username: "Notch".to_string(),
uuid: "4c4ae28c-16c8-49f4-92a6-8d21e0d8b4a0".to_string(),
},
memory: None,
java_version: None,
version_name: None,
loader: Some(Quilt("0.27.1".into())),
runtime_dir: None,
custom_args: vec![],
custom_java_args: vec![],
};
let mut emitter = EventEmitter::new();
emitter.on("single_download_progress", |(path, current, max): (String, u64, u64)| {
println!("{}-{}/{}", path, current, max);
});
emitter.on(
"multiple_download_progress",
|(path, current, max): (String, u64, u64)| {
println!("{}-{}/{}", path, current, max);
},
);
emitter.on("console", |line: String| {
println!("Line: {}", line);
});
let emitter = Arc::new(Mutex::new(emitter));
install(&config, Some(&emitter)).await?;
let child = launch(&config, Some(emitter)).await?;
child.wait().await?;
}
Roadmap
See the open issues for a full list of proposed features (and known issues).
License
Distributed under the MIT License. See MIT License for more information.