4 releases (2 breaking)
0.3.0 | Sep 1, 2023 |
---|---|
0.2.0 | Feb 17, 2023 |
0.1.1 | Feb 13, 2023 |
0.1.0 | Feb 13, 2023 |
#1909 in Parser implementations
115KB
2K
SLoC
Riot Manifest (rman)
This is an unofficial rust implementation for parsing the .manifest file format, and downloading containing files.
About
The format was made by RiotGames and is used by RiotClient for downloading game updates.
Layout of the .manifest file is as follows:
- file header (28 bytes),
- zstd compressed data,
- digital signature.
Decompressed zstd data is a binary flatbuffer format. This crate uses generated code from a mostly complete schema over at this repository.
rman-schema repository is only added as a submodule as a way to track which schema version is used.
Status
This crate is ready for use as-is and should be able to parse all current and future .manifest files, barring any changes to the format itself. If the library is unable to parse any specific file, or if it breaks in the future, feel free to contribute.
The semver-major version of the crate will stay at 0, until functionality and purpose of all of the fields in the flatbuffer schema is known. Besides that, the crate follows cargo's versioning guidelines.
Installation
Add the following to your Cargo.toml
file:
[dependencies]
rman = "0.3"
Usage
See the documentation for examples and information about all of the exposed API's.
Contributing
See CONTRIBUTING.md.
Seeking help
If you need any help with using the library, or have any questions, feel free to open an issue, or ask for assistance on discord.
Acknowledgements
- @moonshadow565 for the amazing work over at rman - set of CLI tools for rito manifest and bundle files. Most of the schema is based upon his work.
- @Morilli for creating ManifestDownloader, which was my first
exposure to the inner workings of
.manifest
format, and for answering my question on discord. - @Kurainu for creating RMAN-Parse on which the early drafts of this project were based on.
Legal
Riot Games, VALORANT, and any associated logos are trademarks, service marks, and/or registered trademarks of Riot Games, Inc.
This project is in no way affiliated with, authorized, maintained, sponsored or endorsed by Riot Games, Inc or any of its affiliates or subsidiaries.
I, the project owner and creator, am not responsible for any legalities that may arise in the use of this project. Use at your own risk.
Dependencies
~7–19MB
~272K SLoC