summaryrefslogtreecommitdiff
path: root/00_blog/00040_Haskell/00065_Base64-Encoder/index.md
blob: bdbae411fa51c7fe5144bbf10dcffc3e31434084 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    February 2018
Miguel's Base64 Encoder 
=======================

Initially coded on a cold winter afternoon to fully understand **base64 encoding** and play with 
**Haskell**, which is always an indisputable pleasure. Hacked together in _big anger_, due to my 
friend Nick's fairy tales about saving his encrypted binary data in plain _ASCII_ 
configuration files,... featuring strange letters and non-printable characters. :smile: 

After optimizing quite a bit, the encoder performs around **460MB/s** on a single core of my _i7-4790K_.

<asciinema-player loop="1" preload="true" theme="solarized-dark" autoplay="true" src="base64.cast"></asciinema-player>

The source code below was auto-fetched from: 
<https://gitweb.softwarefools.com/?p=miguel/haskell.git;a=blob;f=base64/base64.hs>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.haskell .numberLines}
{BEGIN:EMBED}
https://gitweb.softwarefools.com/?p=miguel/haskell.git;a=blob_plain;f=base64/base64.hs
{END:EMBED}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~