Documentation - Byte Dump
Author: Kevin Day
Description: The byte_dump program documentation.
Keywords: Byte Dump, Documentation, Featureless, FLL, Kevin Day, Kevux, Linux, Library, Open-Source, Project

# Program: byte_dump Documentation

The byte_dump program is a tool for parsing and printing the bytes of all data within one or more files.

This tool operates similar to the classic hexdump program and provides similar functionality. However, the byte_dump program is not intended to be a complete replacemenet. Unlike the hexdump program, the byte_dump program is fully UTF-8 aware and even validates the Unicode sequences.

This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

## Standard Parameters

Short | Long | Description
--- | --- | ---
`-h` | `--help` | Print the help message.
`+C` | `++copyright` | Print the copyright.
`+d` | `++dark` | Output using colors that show up better on dark backgrounds.
`+l` | `++light` | Output using colors that show up better on light backgrounds.
`+n` | `++no_color` | Do not print using color.
`+Q` | `++quiet` | Decrease verbosity, silencing most output.
`+E` | `++error` | Decrease verbosity, using only error output.
`+N` | `++normal` | Set verbosity to normal.
`+V` | `++verbose` | Increase verbosity beyond normal output.
`+D` | `++debug` | Enable debugging, significantly increasing verbosity beyond normal output.
`+v` | `++version` | Print only the version number.

The `+Q/++quiet` parameter silences all output that is not the intent and purpose of the program.
For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code.
The `+Q/++quiet` will not suppress this output.
The new line printed at the end of the program, is however, not printed.
The `+Q/++quiet` is ideal for using in scripting to help guarantee more consistent and controlled output.

The `+N/++no_color` simplifies the output to avoid the special color character codes.
The special color character codes tend to take up a lot of extra space and may slow down printing performance.

## Program Parameters

Short | Long | Description
--- | --- | ---
`-b` | `--binary` | Display binary representation.
`-d` | `--decimal` | Display decimal representation.
`-D` | `--duodecimal` | Display duodecimal representation.
`-x` | `--hexidecimal` | Display hexadecimal representation.
`-o` | `--octal` | Display octal representation.
`-U` | `--unicode` | Display using Unicode representation for valid Unicode (like: U+0000).
`-f` | `--first` | Start reading at this byte offset.
`-l` | `--last` | Stop reading at this (inclusive) byte offset.
`-N` | `--narrow` | Use narrow display, resulting in 1*width reducing size of the text columns.
`-p` | `--placeholder` | Use a placeholder character instead of a space for placeholders.
`-t` | `--text` | Include a column of text when displaying the bytes.
`-W` | `--wide` | Use wide display, resulting in 2*width allowing for space for wide characters in the text columns.
`-w` | `--width` | Set number of columns of Bytes to display.
`` | `--normal` | Display UTF-8 symbols for ASCII control codes.
`` | `--simple` | Display spaces for ASCII control codes.
`` | `--classic` | Display periods for ASCII control codes.

When using the `--text` option, some UTF-8 characters may be replaced by your instance and cause display alignment issues.

Special UTF-8 characters and non-spacing UTF-8 characters may be replaced with a space (or a placeholder when the `--placeholder` option is used).

UTF-8 "Combining" characters might have a space appended to allow a proper display but this may cause copy and paste issues.

When --last is used, any UTF-8 sequences will still be printed in full should any part is found within the requested range.

When using the `--unicode` option, invalid Unicode will fallback to being displayed using one of the other modes.