hashlib_codecs
Renamed to convertlib. This package now re-exports convertlib for backward compatibility and is deprecated. Please migrate to the convertlib package.
3.5.0
29K downloads/mo
#1880 most downloaded on pub.dev
bitanon/convertlib
What this package is like to depend on
Last release 1 months ago
08 Jul 2026
Release timing varies
gaps range from 4 weeks to 10 months
Nearly every release is documented
notes for 23 of 23 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
23 releases · first in 2023
8 releases in the last 12 months
see the full history below
Release timeline
23 releases · May 2023 to Jul 2026Releases
latest 23-
3.5.008 Jul 2026Release notes
Open source →- [Breaking Changes]
- Renames internal abstract class
HashlibConvertertoCipherlibConverter. - Removes
encodeString,decodeStringfromIterableCodec.
- Renames internal abstract class
- Fix
CryptDataBuilder.paramto throw anArgumentErrorwhen the value is
null, instead of a rawTypeError. - Speed up Base-64 and Base-32 encoding with specialized single-pass encoders.
Base-64 encoding now outperformsdart:convert. - Speed up Base-64 and Base-32 decoding with specialized single-pass decoders.
Base-64 decoding now outperformsdart:convert. - Speed up
toUtf8usingUint8Listbuffer instead of plainList<int>.
UTF-8 encoding now outperformsdart:convert. - Speed up
fromUtf8with a dedicated byte-to-string decoder.
UTF-8 decoding now matches closely withdart:convert. - Refactor existing benchmarks and add missing ones. Dropping
benchmark_harness
dependency in favor of custom benchmarking class with better flexibility.
Full Changelog: v3.4.0...v3.5.0
Release notes
Open source →- [Breaking Changes]
- Removes
encodeString,decodeStringfromIterableCodec.
- Removes
- Renames internal abstract class
HashlibConvertertoCipherlibConverter. - Fix
CryptDataBuilder.paramto throw anArgumentErrorwhen the value isnull, instead of a rawTypeError. - Speed up Base-64 and Base-32 encoding with specialized single-pass encoders.
Base-64 encoding now outperforms
dart:convert. - Speed up Base-64 and Base-32 decoding with specialized single-pass decoders.
Base-64 decoding now outperforms
dart:convert. - Speed up
toUtf8usingUint8Listbuffer instead of plainList<int>. UTF-8 encoding now outperformsdart:convert. - Speed up
fromUtf8with a dedicated byte-to-string decoder. UTF-8 decoding now matches closely withdart:convert. - Refactor existing benchmarks and add missing ones. Dropping
benchmark_harnessdependency in favor of custom benchmarking class with better flexibility.
- [Breaking Changes]
-
3.4.007 Jul 2026Release notes
Open source →- Rename the package from
hashlib_codecstoconvertlib. The public API is
unchanged: update the dependency toconvertliband imports to
package:convertlib/convertlib.dart. - The
hashlib_codecspackage continues to be published as a thin re-export of
convertlibfor backward compatibility, and will be discontinued after a
migration period.
Full Changelog: v3.3.1...v3.4.0
Release notes
Open source →- Rename the package from
hashlib_codecstoconvertlib. The public API is unchanged: update the dependency toconvertliband imports topackage:convertlib/convertlib.dart. - The
hashlib_codecspackage continues to be published as a thin re-export ofconvertlibfor backward compatibility, and will be discontinued after a migration period.
- Rename the package from
-
3.3.107 Jul 2026Release notes
Open source →- Fix
CryptData.validaterejecting valid Modular Crypt Format hashes such as
bcrypt, whose base64 alphabet uses.. Thehashfield now accepts the
same characters as thesalt([a-zA-Z0-9/+.-]), reverting the overly
strict B64 restriction introduced in3.3.0. - Document every public API element (100% dartdoc coverage) and correct several
inaccurate doc comments, including theBase8Codecalphabet (01234567) and
the octal/binary notes ontoOctal.
Full Changelog: v3.3.0...v3.3.1
Release notes
Open source →- Fix
CryptData.validaterejecting valid Modular Crypt Format hashes such asbcrypt, whose base64 alphabet uses.. Thehashfield now accepts the same characters as thesalt([a-zA-Z0-9/+.-]), reverting the overly strict B64 restriction introduced in3.3.0. - Document every public API element (100% dartdoc coverage) and correct several
inaccurate doc comments, including the
Base8Codecalphabet (01234567) and the octal/binary notes ontoOctal.
- Fix
-
3.3.006 Jul 2026Release notes
Open source →- [Breaking Changes]
ByteCollector.isEqualrequires anIterableargument to match the full
length; previously a strict prefix of the bytes compared equal.CryptData.validatenow follows the PHC string format specification
strictly: the hash must be a B64 string ([a-zA-Z0-9/+], no.or-),
and the version must not have leading zeros.- Reject invalid values after padding in
AlphabetDecoder. Affected codecs areBase32andBase64.
ByteCollector.isEqualnow compares content in constant time, making it safe
for comparing MACs and message digests- Performance improvements (measured on Apple Silicon, 10KB inputs):
- Base-32 decoding: ~6x faster (425 Mbps -> 2.52 Gbps)
- Base-64 decoding: ~6.4x faster (453 Mbps -> 2.9 Gbps)
- UTF-8 encoding: ~6.5x faster (403 Mbps -> 2.61 Gbps)
- Update the PHC string format specification link to its new home at C2SP
Full Changelog: v3.2.0...v3.3.0
Release notes
Open source →- [Breaking Changes]
ByteCollector.isEqualrequires anIterableargument to match the full length; previously a strict prefix of the bytes compared equal.CryptData.validatenow follows the PHC string format specification strictly: the hash must be a B64 string ([a-zA-Z0-9/+], no.or-), and the version must not have leading zeros.- Reject invalid values after padding in
AlphabetDecoder. Affected codecs areBase32andBase64.
ByteCollector.isEqualnow compares content in constant time, making it safe for comparing MACs and message digests- Performance improvements (measured on Apple Silicon, 10KB inputs):
- Base-32 decoding: ~6x faster (425 Mbps -> 2.52 Gbps)
- Base-64 decoding: ~6.4x faster (453 Mbps -> 2.9 Gbps)
- UTF-8 encoding: ~6.5x faster (403 Mbps -> 2.61 Gbps)
- Update the PHC string format specification link to its new home at C2SP
- [Breaking Changes]
-
3.2.006 Jul 2026Release notes
Open source →- [Breaking Changes]
- Fix
Base32Codec.wordSafeto use the documented word-safe alphabet
(23456789CFGHJMPQRVWXcfghjmpqrvwx); it previously used the z-base-32 alphabet. ByteCollectorequality is now value-based:==andhashCodecompare the
collected bytes instead of the identity of the underlying list.
- Fix
- Fix UTF-8 decoder producing wrong code points for some 2-byte sequences (e.g.
U+0100) - Fix
ByteCollector.isEqualcomparing against its own buffer when given aByteBuffer - Fix
ByteCollector.isEqualignoring the offset and length of a partialTypedDataview - Fix incorrect alphabets of
crockfordandgeohashin the README - Fix incorrect parameter descriptions of
toBase32,fromBase32,fromBase64, andfromUtf8 - Document that
toUtf8rejects unpaired surrogates
Full Changelog: v3.1.2...v3.2.0
Release notes
Open source →- [Breaking Changes]
- Fix
Base32Codec.wordSafeto use the documented word-safe alphabet (23456789CFGHJMPQRVWXcfghjmpqrvwx); it previously used the z-base-32 alphabet. ByteCollectorequality is now value-based:==andhashCodecompare the collected bytes instead of the identity of the underlying list.
- Fix
- Fix UTF-8 decoder producing wrong code points for some 2-byte sequences (e.g.
U+0100) - Fix
ByteCollector.isEqualcomparing against its own buffer when given aByteBuffer - Fix
ByteCollector.isEqualignoring the offset and length of a partialTypedDataview - Fix incorrect alphabets of
crockfordandgeohashin the README - Fix incorrect parameter descriptions of
toBase32,fromBase32,fromBase64, andfromUtf8 - Document that
toUtf8rejects unpaired surrogates
- [Breaking Changes]
-
3.1.219 Apr 2026Release notes
Open source →- Add const constructor to
ByteCollectorclass.
Full Changelog: v3.1.1...v3.1.2
- Add const constructor to
-
3.1.118 Apr 2026Release notes
Open source →- Add const constructor to
ByteCollectorclass.
Full Changelog: v3.1.0...v3.1.1
- Add const constructor to
-
3.1.018 Apr 2026Release notes
Open source →- Introduce
ByteCollectorabstract class with methods for various encoding formats (hex, binary, octal, base32, base64, BigInt). and utility methods for equality check.
- Introduce
-
3.0.114 Jun 2025 -
3.0.010 Jun 2025 -
2.6.019 Aug 2024Release notes
Open source →- [Breaking Changes]
- Change the behavior of the Base-8 encoder to follow the standard
- Accept only
List<int>instead ofIterable<int>in converters
- [Breaking Changes]
-
2.5.030 Jun 2024Release notes
Open source →- Support UTF-8 encoding and decoding.
- New class:
UTF8Codec - New methods:
toUtf8,fromUtf8
- New class:
- Renames:
HashlibCodec->IterableCodec
- Minor performance impovements
- Support UTF-8 encoding and decoding.
-
2.4.130 Jun 2024 -
2.4.024 May 2024Release notes
Open source →- Breaking Changes: Uses string for salt and hash in
CryptData - New class
CryptDataBuilderis available to constructCryptDatainstances.
- Breaking Changes: Uses string for salt and hash in
-
2.3.023 May 2024Release notes
Open source →- Breaking Changes: Renames PHCSF -> CryptFormat. Affected names:
- Class:
PHCSF->CryptFormatPHCSFData->CryptDataPHCSFEncoder->CryptEncoderPHCSFDecoder->CryptDecoder
- Constant:
phcsf->crypt
- Methods:
toPHCSF->toCryptfromPHCSF->fromCrypt
- Class:
- Breaking Changes: Renames PHCSF -> CryptFormat. Affected names:
-
2.2.002 Sep 2023Release notes
Open source →- Support encoding and decoding with PHC string format specification
- New Class :
PHCSF - New Constant:
phcsf - New Methods :
toPHCSF,fromPHCSF
- New Class :
- Support encoding and decoding with PHC string format specification
-
2.1.129 Aug 2023 -
2.1.022 Jun 2023Release notes
Open source →- Adds more alphabets to
Base32Codec. Additional alphabets are:- base32hex
- Lowerase base32hex
- Crockford's Base32
- Geohash's Base32
- z-base-32
- Word-safe alphabet
- Allows the
paddingparameter to be effective to any codecs inBase32CodecandBase64Codec.
- Adds more alphabets to
-
2.0.018 Jun 2023Release notes
Open source →- Breaking: Removes all constant exports.
- They are now available inside codec class. e.g.:
Base64Codec.urlSafe
- They are now available inside codec class. e.g.:
- Breaking: Modify parameters of all public methods.
- Improves encoding and decoding algorithm.
- Adds Base-8 (Octal) codec support
- New class:
Base8Codec - New methods:
fromOctal,toOctal
- New class:
- Renames a lot of exports
Uint8Converter->BitConverterUint8Codec->HashlibCodecBinaryCodec->Base2CodecB16Codec->Base16CodecB64Codec->Base64Codec
- Separates base encoder and decoders
- Generic encoders:
BitEncoder,AlphabetEncoder - Generic decoders:
BitDecoder,AlphabetDecoder
- Generic encoders:
- Breaking: Removes all constant exports.
-
1.2.022 May 2023Release notes
Open source →- Adds
BigIntcodec support.- New class:
BigIntCodec - New methods:
fromBigInt,toBigInt - New constant:
bigintLE,bigintBE
- New class:
- Updates documentations.
- Adds
-
1.1.121 May 2023 -
1.1.021 May 2023Release notes
Open source →- Fixes padding issues with
base2andbase16 - In
toBase32, uses the parameterlowerreplacingupper. - Transfers
fromBase64UrltofromBase64with extended alphabet. - Transfers
toBase64UrltotoBase64with optionalurlparameter. - Improves documentation
- Fixes padding issues with
-
1.0.020 May 2023