b64/README.md

97 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# b64
A tool I created to
* Base64 encode/decode text quickly from [helix](https://helix-editor.com/) :)
* Learn a bit of Zig
## Usage
```
Usage: b64 [-e] [-d] <string>
-h, --help
Display this help and exit.
-b, --benchmark
Benchmark b64
-d, --decode
Decode base64 to string.
-e, --encode
Encode string to base64.
-v, --version
Display version.
<str>
String to encode or decode.
```
### Encoding
```shell
$ b64 -e "encode this string to base64"
ZW5jb2RlIHRoaXMgc3RyaW5nIHRvIGJhc2U2NA==
# From stdin
$ echo -n "encode this string to base64" | b64 -e
ZW5jb2RlIHRoaXMgc3RyaW5nIHRvIGJhc2U2NA==
$
```
### Decoding
```shell
$ b64 -d ZW5jb2RlIHRoaXMgc3RyaW5nIHRvIGJhc2U2NA==
encode this string to base64
# From stdin
$ echo -n "ZW5jb2RlIHRoaXMgc3RyaW5nIHRvIGJhc2U2NA==" | b64 -d
encode this string to base64
$
```
### Benchmark
```shell
zig build
./zig-out/bin/b64 -b
encode
280335 iterations 12401.51ns per iterations
40 bytes per iteration
worst: 138209ns median: 10042ns stddev: 318640155486692400.00ns
decode
282250 iterations 12048.95ns per iterations
28 bytes per iteration
worst: 76416ns median: 10125ns stddev: 318604539142680300.00ns
zig build -Doptimize=ReleaseSafe
./zig-out/bin/b64 -b
encode
1284225 iterations 1228755.55ns per iterations
40 bytes per iteration
worst: 0ns median: 416ns stddev: 86582387.80ns
decode
2295809 iterations 1226658.46ns per iterations
28 bytes per iteration
worst: 0ns median: 375ns stddev: 86582411.15ns
zig build -Doptimize=ReleaseFast
./zig-out/bin/b64 -b
encode
1355137 iterations 93007.39ns per iterations
40 bytes per iteration
worst: 526709ns median: 83ns stddev: 37608456664387784.00ns
decode
2729217 iterations 105389.71ns per iterations
28 bytes per iteration
worst: 535583ns median: 83ns stddev: 36170163385699460.00ns
```
## Build
```shell
$ git clone https://git.kcbark.net/zig/b64.git && cd b64
$ zig build -Doptimize=ReleaseFast
$ cp zig-out/bin/b64 ~/.local/bin
```