NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1834 most downloaded on pub.dev
Fast and error resilient codecs. Supports Base2, Base8, Base16, Base32, Base64, BigInt, UTF-8, and the PHC/crypt string format.
Last release 2 months ago
22 Jul 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
3 months old
5 releases · first in 2026
One column per month.
Update README.md for the 3.6.0 API: the to<Name>Bytes byte encoders, the non-throwing tryFrom<Name> decoders, constantTimeEquals , the exported conver
README.md for the 3.6.0 API: the to<Name>Bytes byte encoders, thetryFrom<Name> decoders, constantTimeEquals, the exportedFull Changelog: v3.6.0...v3.6.1
README.md for the 3.6.0 API: the to<Name>Bytes byte encoders, the
non-throwing tryFrom<Name> decoders, constantTimeEquals, the exported
converter base classes, and the case-insensitive Crockford decoding.CipherlibConverter -> BitConverter (the exported bit-converter base class).
CipherlibConverter -> BitConverter (the exported bit-converter base class).BigIntDecoder narrows from Converter<BigInt, Iterable<int>> toConverter<BigInt, Uint8List>; BigIntCodec decoders now return a Uint8List.ByteEncoder, ByteDecoder, AlphabetEncoder, and AlphabetDecoderpackage:convertlib/convertlib.dart.constantTimeEquals, a top-level constant-time byte comparison forByteCollector.toHexBytes, toBinaryBytes, toOctalBytes, toBase32Bytes, andtoBase64Bytes, returning the encoded ASCII output as a Uint8List withoutString.tryFromHex, tryFromBinary, tryFromOctal,tryFromBase32, tryFromBase64, tryFromUtf8, and tryFromBigInt, whichnull instead of throwing a FormatException on invalid input.U+10000..U+10FFFF; UTF8Encoder.convert now uses the 4-byte form (the publictoUtf8 was unaffected). Verified against dart:convert.I/i/L/l as 1 and O/o as 0. Encoding output is unchanged.ByteCollector.number truncating values wider than 32 bits on the web; it2^53 (VM unchanged).ByteCollector.isEqual returns false for a [String] that is not validFormatException, matching its contract.== and hashCode to CryptData; a null and an emptyparams map now compare equal (both encode to the same string).$id$data=), and fix the decoderv=... segment as the version.fromBase32/fromBase64 decoding and the generic AlphabetEncoder byFormatException message for non-canonical encoded input:'Invalid length' is now 'Invalid length or non-zero trailing bits'.Full Changelog: v3.5.1...v3.6.0
Widen fromUtf8 to accept any List<int> input instead of requiring a Uint8List . Non- Uint8List inputs are copied to a Uint8List before decoding.
fromUtf8 to accept any List<int> input instead of requiring aUint8List. Non-Uint8List inputs are copied to a Uint8List beforeFull Changelog: v3.5.0...v3.5.1
Renames internal abstract class HashlibConverter to CipherlibConverter .
HashlibConverter to CipherlibConverter.encodeString, decodeString from IterableCodec.CryptDataBuilder.param to throw an ArgumentError when the value isnull, instead of a raw TypeError.dart:convert.dart:convert.toUtf8 using Uint8List buffer instead of plain List<int>.dart:convert.fromUtf8 with a dedicated byte-to-string decoder.dart:convert.benchmark_harnessFull Changelog: v3.4.0...v3.5.0
Rename the package from hashlib_codecs to convertlib . The public API is unchanged: update the dependency to convertlib and imports to package:convert
hashlib_codecs to convertlib. The public API isconvertlib and imports topackage:convertlib/convertlib.dart.hashlib_codecs package continues to be published as a thin re-export ofconvertlib for backward compatibility, and will be discontinued after aFull Changelog: v3.3.1...v3.4.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →