JonathanHelianthicusDoe / shticker_book_unwritten

Minimal CLI launcher for the Toontown Rewritten MMORPG
https://crates.io/crates/shticker_book_unwritten
GNU General Public License v3.0
13 stars 4 forks source link
agpl agpl-v3 cli cli-app command-line gnu-linux launcher linux minimal minimalist mmorpg rust rust-lang shticker-book toontown toontown-rewritten toontownrewritten ttr

shticker_book_unwritten

crates.io GPL v3+ unsafe forbidden minimum supported rust version 1.41.0 GitHub code size in bytes

shticker\_book\_unwritten logo

A minimal CLI launcher for the Toontown Rewritten MMORPG. Inspired by Shticker Book Rewritten.

Currently builds and functions on GNU/Linux, Windows NT (using the MSVC toolchain), and macOS (be sure to allow Terminal the ability to monitor inputs).

Mirror: https://codeberg.org/JonathanHelianthicusDoe/shticker_book_unwritten

Installing

From pre-compiled binary

You can get pre-compiled binaries from the releases page on GitHub.

From crates.io

Requires a distribution of Rust/cargo, which you can get from rustup. The minimum supported version of rustc is 1.41.0.

cargo install shticker_book_unwritten

If you already have a version installed and want the latest version to replace it, you can run:

cargo install -f shticker_book_unwritten

From GitHub git repository

Requires a distribution of Rust/cargo, which you can get from rustup. The minimum supported version of rustc is 1.41.0.

git clone https://github.com/JonathanHelianthicusDoe/shticker_book_unwritten.git
cd shticker_book_unwritten
cargo rustc --release -- -C target-cpu=native # Or just `cargo build --release`
strip ./target/release/shticker_book_unwritten # Optional
./target/release/shticker_book_unwritten --help

The executable name is quite lengthy, so you will probably want to alias it (to sbu or something like that).

Panicking

shticker_book_unwritten uses #![forbid(unsafe_code)], so it should (barring compiler bugs) be impossible for actual undefined behavior to occur unless some dependency of shticker_book_unwritten is written using unsafe code in an unsound way. However, although shticker_book_unwritten is written intentionally to avoid panicking for any reason whatsoever, it is not (in general) possible in Rust to statically guarantee that a program is panic-free for all possible inputs.

If you find a way to make shticker_book_unwritten panic, that is considered a bug, and you should file an issue against the GitHub repository and/or submit a pull request to fix it. Additionally, undefined behavior is (obviously) also a bug, so similar steps should be taken if you find UB, but that will necessarily require using external libraries in a different way due to them being broken and/or fixing those external libraries upstream.

Legal

This entire work (including this document & all associated source code) is licensed to anyone under the terms of the GNU General Public License, version 3 (or any later version of the same license, at the licensee’s option). For the relevant legal text, see the LICENSE file.

![GNU GPL v3+](https://www.gnu.org/graphics/gplv3-or-later.png "GNU GPL v3+")

Versions of shticker_book_unwritten prior to 1.0.0 were licensed under the terms of the GNU Affero General Public License, version 3 or later.

This work contains (Rust-ified) code from bsdiff 4.3, which is licensed under a slightly modified version of the FreeBSD license. For the relevant legal text, see the LICENSE.bsdiff4 file.

The shticker_book_unwritten logo is licensed to anyone under the terms of the Creative Commons Attribution-ShareAlike license, version 4.0 (or any later version of the same license, at the licensee’s option). For the relevant legal text, see https://creativecommons.org/licenses/by-sa/4.0/legalcode, or the img/LICENSE.imgs file for a plaintext version.

![CC BY-SA 4.0+](https://i.creativecommons.org/l/by-sa/4.0/88x31.png "CC BY-SA 4.0+")

shticker_book_unwritten uses cargo-deny to enforce freeness of licenses, and license compatibility with all transitive dependencies. The configuration for this is in the deny.toml file. You can replicate the check yourself with cargo deny check all.