All notable changes to this project will be documented in this file, which follows the conventions of keepachangelog.com. This project adheres to Semantic Versioning.
...
A quick follow-up to make the library is usable with babashka, which can't use the optimized Java encoding implementations.
:bb
platform to use the pure-Clojure
implementations, similar to :cljs
.This is a new release of alphabase with some major changes. Most significantly, the JVM-targeted implementation is now written in Java for performance, resulting in several 10x-100x speedups and better memory efficiency. Javascript-targeted code continues to be written in (mostly) pure Clojurescript.
The second significant change is that the prior Base32 implementation was incorrect; it was using the same radix-encoding approach as Base58, but that produced the wrong results. The data did round-trip, but this was not compliant with RFC 4648. If you serialized data with the 2.x version, it will not deserialize correctly with 3.x! Sorry about that.
alphabase.core
is now alphabase.radix
if you need customized encoding.alphabase.hex
is now alphabase.base16
for consistency with the other included bases.alphabase.bytes/random-bytes
now uses a cryptographically-strong API for random values in Javascript.b/from-string
and b/to-string
.alphabase.base2
namespace provides binary encoding.alphabase.base8
namespace provides octal encoding.alphabase.base64
convenience namespace provides the standard library
Base64 implementations in Java and Google Closure.Largely a maintenance release, with significant build/test changes.
alphabase.base32
namespace.javax.xml.bind.DatatypeConverter
in the alphabase.hex
namespace for compatibility with Java 11, which moves that class to a separate
module.alphabase.bytes
.alphabase.bytes/copy-slice
returns a copy of a sequence of bytes inside a
source array.alphabase.bytes/concat
returns a byte array which is the concatenation of
the arrays given as arguments.Note that this is a major release because of the removal of multibase support from alphabase.
alphabase.bytes/bytes?
provides a cross-platform test for byte data.alphabase.bytes/copy
which simplify full cloning of
a byte array and a full source write to an offset in dest.alphabase.bytes/copy
returns the number of bytes copied in the
multi-argument arities.alphabase.bytes/compare
offers a lexicographic comparator for byte arrays.alphabase.multi
in favor of a unified
multiformats
codebase.javax.xml.bind.DatatypeConverter
optimization for :clj
in the hex
namespace for Java 9+ compatibility.
#4This project has been stable for a while now, so bumping the version to 1.0.0.
alphabase.multi
with limited multibase
implementation using the existing hex and base58btc support.DataTypeConverter
class.doo
.bytes/copy
provides a way to copy bytes from one array to another.bytes/init-bytes
to initialize an array with a seq of values.bytes/byte-seq
returns nil for nil inputs.bigint-
functions are only emitted for :clj
.:cljs
.Initial project release.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close