Fairly performant but high compression ratio compression for case insensitive text. Allows all printable ascii characters in the input. Output can be in 3 different formats, binary, base 10 or base 64. This project is mostly designed for text in the 100-10,000 character range, but should still be reasonable for longer or shorter strings. Messages should usually get longer in base 10, but the result should still be better than a simple encoding for long strings. This program follows a similar compression stack to that of bzip2, with Run Length Encoding -> Burrows-Wheeler Transform -> Move to Front Transform -> Run Length Encoding -> Huffman Coding If it is more efficient to do so this program will skip everything except for the huffman coding, or just use a simple text encoding for small messages. The huffman coding tree is tacked on to the start of the message when it is used resulting in a slight overhead cost.