Update README.md

This commit is contained in:
Campbell 2025-04-29 22:19:55 -04:00 committed by GitHub
parent a30a0f2c5b
commit 15947ceff3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5,7 +5,9 @@
[![Build rustii](https://github.com/NinjaCheetah/rustii/actions/workflows/rust.yml/badge.svg)](https://github.com/NinjaCheetah/rustii/actions/workflows/rust.yml)
rustii is a library and command line tool written in Rust for handling the various files and formats found on the Wii. rustii is a port of my other library, [libWiiPy](https://github.com/NinjaCheetah/libWiiPy), which aims to accomplish the same goal in Python. Compared to libWiiPy, rustii is in its very early stages of development and is missing most of the features present in its Python counterpart. The goal is for rustii and libWiiPy to eventually have feature parity, with the rustii CLI acting as a drop-in replacement for the (comparatively much less efficient) [WiiPy](https://github.com/NinjaCheetah/WiiPy) CLI.
rustii is a library and command line tool written in Rust for handling the various files and formats found on the Wii. rustii is a port of my other library, [libWiiPy](https://github.com/NinjaCheetah/libWiiPy), which aims to accomplish the same goal in Python. At this point, rustii should not be considered stable, however it offers most of the same core functionality as libWiiPy, and the rustii CLI offers most of the same features as WiiPy. You can check which features are available and ready for use in both the library and the CLI below. The goal is for rustii and libWiiPy to eventually have feature parity, with the rustii CLI acting as a drop-in replacement for the (comparatively much less efficient) [WiiPy](https://github.com/NinjaCheetah/WiiPy) CLI.
There is currently no public documentation for rustii, as I'm putting that off until I reach feature parity with libWiiPy so that the APIs are an equal level of stable. You can, however, reference the doc strings present on many of the structs and functions, and build them into basic documentation yourself (using `cargo doc --no-deps`). The [libWiiPy API docs](https://docs.ninjacheetah.dev) may also be helpful in some cases.
I'm still very new to Rust, so pardon any messy code or confusing API decisions you may find. libWiiPy started off like that, too.
@ -13,25 +15,29 @@ I'm still very new to Rust, so pardon any messy code or confusing API decisions
- Structs for parsing and editing WADs, TMDs, Tickets, and Certificate Chains
- Title Key and content encryption/decryption
- High-level Title struct (offering the same utility as libWiiPy's `Title`)
- Content addition/removal/replacing
- LZ77 compression/decompression
- ASH decompression
- U8 archive packing and unpacking
- NUS TMD/Ticket/certificate chain/content downloading
- A basic CLI that uses the above features to allow for packing/unpacking WADs
- The very basics of U8 archive handling (not really functional yet though)
### What's Included (CLI-Side)
- WAD packing/unpacking/converting
- NUS TMD/Ticket/Title downloading
- WAD converting/packing/unpacking
- WAD content addition/removal/replacement
- NUS TMD/Ticket/Content/Title downloading
- LZ77 compression/decompression
- ASH decompression
- Fakesigning command for WADs/TMDs/Tickets
- Info command for WADs/TMDs/Tickets
- Info command for WADs/TMDs/Tickets/U8 archives
- U8 archive packing/unpacking
To see specific usage information, check `rustii --help` and `rustii <command> --help`.
## Building
rustii is a standard Rust package. You'll need to have [Rust installed](https://www.rust-lang.org/learn/get-started), and then you can simply run:
rustii is a standard Rust crate. You'll need to have [Rust installed](https://www.rust-lang.org/learn/get-started), and then you can simply run:
```
cargo build --release
```
to compile the rustii library and CLI. The CLI can then be found at `target/release/rustii(.exe)`.
You can also download the latest nightly build from [GitHub Actions](https://github.com/NinjaCheetah/rustii/actions).