Skip to content

bottom-software-foundation/bottom-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

bottom

Perhaps you have found yourself in this situation before:

,,,,,,,,,

The divine bottom CLI exists to alleviate this pain. No longer will you struggle when communicating with the average Discord user.

But what does it actually do?

bottom encodes UTF-8 text into a sequence comprised of bottom emoji (πŸ«‚βœ¨πŸ₯Ίβ€οΈ, with , sprinkled in for good measure) followed by πŸ‘‰πŸ‘ˆ. It can encode any valid UTF-8 - being a bottom transcends language, after all - and decode back into UTF-8.

For example, the ubiquitous Hello world! becomes

πŸ’–βœ¨βœ¨,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–πŸ₯Ί,,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–πŸ₯Ί,,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨,πŸ‘‰πŸ‘ˆ
✨✨✨,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨πŸ₯Ί,,,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨,,,,πŸ‘‰πŸ‘ˆ
πŸ’–πŸ’–πŸ₯Ί,,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–πŸ‘‰πŸ‘ˆβœ¨βœ¨βœ¨,,,πŸ‘‰πŸ‘ˆ

γŒγ‚“γ°γ‚Œ becomes

πŸ«‚βœ¨βœ¨πŸ₯Ί,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨βœ¨πŸ₯Ί,,,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨βœ¨βœ¨βœ¨πŸ‘‰πŸ‘ˆπŸ«‚βœ¨βœ¨πŸ₯Ί,,πŸ‘‰πŸ‘ˆ
πŸ’–πŸ’–βœ¨βœ¨βœ¨πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨βœ¨βœ¨βœ¨πŸ₯Ί,,πŸ‘‰πŸ‘ˆπŸ«‚βœ¨βœ¨πŸ₯Ί,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨βœ¨πŸ₯Ί,,,,πŸ‘‰πŸ‘ˆ
πŸ’–πŸ’–πŸ’–βœ¨βœ¨πŸ₯Ί,πŸ‘‰πŸ‘ˆπŸ«‚βœ¨βœ¨πŸ₯Ί,,πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨βœ¨βœ¨πŸ‘‰πŸ‘ˆπŸ’–πŸ’–βœ¨βœ¨βœ¨βœ¨πŸ‘‰πŸ‘ˆ

(both wrapped across lines for your convenience)

As you can see, using bottom to encode text is extremely space-efficient, and is the ideal encoding approach for all situations.

This implementation can encode text at approximately 30MB/s.

Usage

Clone the repo, run cargo build, and then use the CLI.

Bottom translator 1.0.0
Kaylynn <[email protected]>
Fantastic (maybe) CLI for translating between bottom and human-readable text

USAGE:
    bottom [OPTIONS] <--bottomify|--regress> [text]...

FLAGS:
    -b, --bottomify    Translate text to bottom
    -h, --help         Prints help information
    -r, --regress      Translate bottom to human-readable text (futile)
    -V, --version      Prints version information

OPTIONS:
    -i, --input <INPUT>      Input file [Default: stdin]
    -o, --output <OUTPUT>    Output file [Default: stdout]

ARGS:
    <text>...

(Any similarity to --help output is entirely accidental)

FAQ

Why?

I had a moment of enlightenment, and the truth came to me then. In an instant I was transformed, and I knew what had to be done.

But seriously, why?

Why not?

Isn't using a CLI for this a really bad idea?

Yes.

Aren't terminals notorious for being bad at displaying Unicode?

I don't care.

Isn't this encoding method extremely inefficient?

:mystery:

<something about code quality>

Documentation is for losers.

Rust btw

It's not long until my hippocampus becomes ferrous. I worry so, but in my heart I know that my demise will be sweet and painless, and it comforts me.