Skip to content

LibreCybernetics/basecodecs.scala

Repository files navigation

Summary

Base Codecs library in Scala (JVM, JS, Native)

Supported Codecs

RFC 4648: Base16, Base32, Base32Hex, Base64, Base64URLSafe Crockford’s Base32 Multibase’s Base2, Base8 Zooko’s Base32

Current shortcomings

  • Iffy support of padding
  • No support for Crockford’s Base32 checksum
  • Lacking support for Base10, Base36Lowercase, Base36Uppercase, BitcoinBase58, FlickerBase58

Quality

>95% coverage test with `sbt coverage “core3/test” coverageReport`

https://github.com/scoverage/sbt-scoverage

>99% Mutation score with `sbt “project core3” “stryker”`

https://stryker-mutator.io/docs/stryker4s/getting-started/

200,000 base64 encode/decode of 1KB per second on a single Zen 4 core with `sbt “core-bench3/Jmh/run dev.librecybernetics.data.Base64Bench”`