https://github.com/ilyakurdyukov/crzy64 Skip to content Sign up * Why GitHub? + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} ilyakurdyukov / crzy64 Public * Notifications * Fork 0 * Star 24 * An easy to decode base64 modification. BSD-2-Clause License 24 stars 0 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 1 branch 0 tags Code Latest commit @ilyakurdyukov ilyakurdyukov benchmark sample, fixed typo in comments ... 8f943d7 Dec 21, 2021 benchmark sample, fixed typo in comments 8f943d7 Git stats * 5 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time LICENSE Initial commit Dec 21, 2021 Makefile optimized encoder (fast64, sse2, ssse3) Dec 21, 2021 README.md benchmark sample, fixed typo in comments Dec 21, 2021 bench.c actual commit Dec 21, 2021 crzy64.h benchmark sample, fixed typo in comments Dec 21, 2021 main.c actual commit Dec 21, 2021 test.c actual commit Dec 21, 2021 View code crzy64 An easy to decode base64 modification. Build Benchmark README.md crzy64 An easy to decode base64 modification. This is a base64 modification designed to simplify the decoding step. For the four encoded bytes, it only takes 12 operations (+ - & ^ << >>) to convert them to 24 bits of data. Using 64-bit or vector instructions makes decoding even more efficient. But it's bound to ASCII character codes and will not work with other encodings like EBCDIC. There is a difference with base64 as it uses "./" instead of "+/" and the data is also pre-shuffled to speed up decoding. Build $ make all check Benchmark $ make bench ./crzy64_bench vector: ssse3 fast64: yes size: 100 MB memcpy: 8.592ms memcpy: 8.562ms memcpy: 8.565ms memcpy: 8.542ms memcpy: 9.144ms encode: 28.767ms encode: 28.806ms encode: 28.818ms encode: 28.572ms encode: 28.627ms decode: 16.798ms decode: 16.410ms decode: 16.526ms decode: 16.701ms decode: 16.286ms About An easy to decode base64 modification. Topics base64 Resources Readme License BSD-2-Clause License Stars 24 stars Watchers 2 watching Forks 0 forks Releases No releases published Packages 0 No packages published Languages * C 96.1% * Makefile 3.9% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.