base64

Base64 encodes arbitrary binary data as a string of 64 printable ASCII characters. Each group of three input bytes becomes four output characters from the alphabet A–Z a–z 0–9 + /, padded to a multiple of four with ==.

The round-trip property (decode (encode s)) = s holds for any string whose bytes survive the host's Base64 implementation. The pure transform lives in wal-sh.tools.base64.core (host-neutral .cljc, tested on the JVM with test.check). The browser adapter is wal-sh.tools.base64.browser, which delegates to js/btoa / js/atob in ClojureScript and java.util.Base64 on the JVM. Build: gmake tools-cljs; debug in isolation: gmake dev-tool TOOL=base64.