# uwuifyy [![build](https://github.com/sgoudham/uwuifyy/actions/workflows/build.yml/badge.svg)](https://github.com/sgoudham/uwuifyy/actions/workflows/build.yml) [![crate.io](https://img.shields.io/crates/v/uwuifyy)](https://crates.io/crates/uwuifyy) [![downloads](https://img.shields.io/crates/d/uwuifyy)](https://crates.io/crates/uwuifyy) [![license](https://img.shields.io/github/license/sgoudham/uwuifyy)](LICENSE) > A robust, customizable, blazingly-fast, efficient and easy-to-use command line application to uwu'ify your text! > ![](logo/uwuifyy-logo.png) > > Logo Credits: Jade Nelson ## Table Of Contents - [uwuifyy](#uwuifyy) * [About](#about) * [Features](#features) * [Installation](#installation) * [Homebrew](#homebrew) * [AUR](#aur) * [Binaries](#binaries) + [Windows](#windows) + [Linux \ macOS](#Linux-\-macOS) * [Rust \ Cargo](#Rust-\-Cargo) * [Usage](#usage) + [Text Input to Text Output](#text-input-to-text-output) + [Text Input to File Output](#text-input-to-file-output) + [File Input to File Output](#file-input-to-file-output) * [Benchmarks](#benchmarks) + [The Complete Works of William Shakespeare](#the-complete-works-of-william-shakespeare) + [300k+ Tokyo 2020\21 Olympics Tweets](#300k+-tokyo-2020\21-olympics-tweets) + [3.5M Tiktok Google Play Reviews](#35m-tiktok-google-play-reviews) + [3.6M Amazon Reviews And Ratings](#36m-amazon-reviews-and-ratings) * [License](#license) * [Acknowledgement](#acknowledgement) ## About Have you ever wanted to uwu'ify text and large files at blazing fast speeds? Well! You came to the right place! `uwuifyy` allows you to _uwu'ify_ text and files from within your own terminal in an _extremely_ fast manner! ## Features - [x] _**BLAZINGLY FAST**_ (Check out -> [Benchmarks](#benchmarks)) - [x] Seeded by default to allow for reproducible results - [x] Excludes URL's & Emails - [x] UwU'ify files available locally on disk - [x] Completely customisable modifiers ## Installation ### Homebrew For `macOS` users, installation through [Homebrew](https://brew.sh/) is recommended. ```shell $ brew tap sgoudham/tap $ brew install uwuifyy ``` ### AUR `Arch Linux` users can install `uwuifyy` through the [AUR](https://aur.archlinux.org/) using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers). ```shell $ paru uwuifyy ``` ### Binaries Binaries for **Windows**, **macOS** & **Linux** are available with every single [release](https://github.com/sgoudham/uwuifyy/releases) ### Windows 1. Download either `uwuifyy-x86_64-pc-windows-msvc.zip` or `uwuifyy-x86_64-pc-windows-gnu.zip` 2. Extract into `\bin` folder at `C:\your\path\here\` ``` C: |__your |__path |__here |__bin |__uwuifyy.exe ``` 3. Set `uwuifyy.exe` in your path to access it globally ```shell $ setx path "%path%;C:\your\path\here\bin" ``` 4. Refresh command line and verify installation ```shell $ uwuifyy --help ``` ### Linux \ macOS 1. Download `uwuifyy-x86_64-unknown-linux-gnu.tar.gz` or `uwuifyy-x86_64-unknown-linux-musl.tar.gz` or `uwuifyy-x86_64-apple-darwin.tar.gz` 2. Extract into your local directory ```shell # Linux $ tar -xf uwuifyy-x86_64-unknown-linux-gnu.tar.gz $ tar -xf uwuifyy-x86_64-unknown-linux-musl.tar.gz # macOS $ tar -xf uwuifyy-x86_64-apple-darwin.tar.gz ``` 3. Move into `~/bin` ```shell # Create ~/bin if it does not exist $ mkdir -p ~/bin $ mv uwuifyy ~/bin ``` 4. Set permissions for executable ```shell $ chmod 755 ~/bin/uwuifyy ``` 5. Update `PATH` to use globally ```shell # Linux $ echo 'export PATH=~/bin:$PATH' >> ~/.bashrc $ source ~/.bashrc # macOS $ echo 'export PATH=~/bin:$PATH' >> ~/.bash_profile $ source ~/.bash_profile ``` 6. Verify installation ```shell $ uwuifyy --version uwuifyy 0.3.0 ``` ## Rust \ Cargo Alternatively, if using Rust's package manager, `Cargo`, all that is needed is ```shell $ cargo install uwuifyy ``` If you do not have `Cargo` available on your machine, you can download it as part of Rust [here](https://www.rust-lang.org/tools/install) ## Usage ```commandline $ uwuifyy --help USAGE: uwuifyy.exe [OPTIONS] <--text |--infile > OPTIONS: -t, --text The text to uwu'ify -i, --infile The file to uwu'ify -o, --outfile The file to output uwu'ified text --ascii-only The uwu'ified text will only include ASCII faces --unicode-only The uwu'ified text will only include UTF-8 faces -r, --random The flag to enable randomized uwu'ified text -w, --words The modifier to determine how many words to be uwu'ified [default: 1] -f, --faces The modifier for uwu faces e.g hello -> (^-^*)/ hewwo [default: 0.05] -a, --actions The modifier for actions e.g *shuffles over* [default: 0.125] -s, --stutters The modifier for stutters e.g b-baka! [default: 0.225] -h, --help Print help information -V, --version Print version information ``` ### Text Input to Text Output ![](examples/gifs/text-input-to-text-output.gif) ### Text Input to File Output ![](examples/gifs/text-input-to-file-output.gif) ### File Input to File Output ![](examples/gifs/text-file-to-file-output.gif) ## Benchmarks - Benchmarks/Tests carried out on a `Dell XPS 15` - CPU: `11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz` - SSD: `NVMe Micron 2300 1TB` ### The Complete Works of William Shakespeare - [Dataset](https://www.kaggle.com/kewagbln/shakespeareonline) - Size: `5.46 MiB` - Time Taken: `< 1s` ![](examples/gifs/william-shakespeare.gif) ### 300k+ Tokyo 2020\21 Olympics Tweets - [Dataset](https://www.kaggle.com/amritpal333/tokyo-olympics-2021-tweets) - Size: `98.54 MiB` - Time Taken: `1s` ![](examples/gifs/tokyo-2020-olympics-tweets.gif) ### 3.5M Tiktok Google Play Reviews - [Dataset](https://www.kaggle.com/shivamb/35-million-tiktok-mobile-app-reviews) - Size: `543.02 MiB` - Time Taken: `4s` ![](examples/gifs/tiktok_app_reviews.gif) ### 3.6M Amazon Reviews And Ratings - [Dataset](https://www.kaggle.com/bittlingmayer/amazonreviews?select=train.ft.txt.bz2) - Size: `1.6 GiB` - Time Taken: `21s` - **DISCLAIMER:** The input is a 1.6GB file and the output is a 2.2GB file. They are not included in the repo. ![](examples/gifs/amazon-ratings-reviews.gif) ## License [MIT License](LICENSE) ## Acknowledgement This project is inspired from one of many existing normal to uwu converters: [Uwuifier](https://github.com/Schotsl/Uwuifier-node)