uwuifyy 0.2.0

A robust, customizable, blazingly-fast, efficient and easy-to-use command line application to uwu'ify your text!
Documentation
# 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
        * [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
```

### 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 --help
uwuifyy 0.2.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 <TEXT>|--infile <FILE>>

OPTIONS:
    -t, --text <TEXT>         Text to uwu'ify
    -i, --infile <FILE>       The file to uwu'ify
    -o, --outfile <FILE>      The file to output uwu'ified text
    -w, --words <VALUE>       The modifier to determine how many words to be uwu'ified [default: 1]
    -f, --faces <VALUE>       The modifier for uwu faces e.g hello -> hewwo [default: 0.05]
    -a, --actions <VALUE>     The modifier for actions e.g *shuffles over* [default: 0.125]
    -s, --stutters <VALUE>    The modifier for stutters e.g b-baka! [default: 0.225]
    -r, --random              Flag to enable/disable random uwu'ifying
    -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)