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 builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |