multiformats
Core library for parsing IPFS-related things. This package is mainly used by https://atprotodart.com packages.
1.4.0
4.2K downloads/mo
#4103 most downloaded on pub.dev
myConsciousness/atproto.dart
What this package is like to depend on
Last release 28 days ago
26 Jul 2026
Ships unpredictably
gaps range from 9 days to 1.4 years
Nearly every release is documented
notes for 18 of 18 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
20 releases · first in 2023
5 releases in the last 12 months
see the full history below
Release timeline
20 releases · Jun 2023 to Jul 2026
2024
2025
2026
Releases
latest 20-
1.4.026 Jul 2026Release notes
Open source →- fix:
dagCborEncodekeeps its documentedArgumentError/InvalidCidErrorcontract for a sole-$bytesmap whose value is not valid base64, which previously leaked a rawFormatException— reachable from user-supplied$unknowndata. - fix: a sole-
$linkor sole-$bytesmap whose value is not aStringnow throwsArgumentErrorinstead of being silently encoded as an ordinary one-entry map, which turned a typo into a valid-looking but wrong CID. - fix: encoding a value nested deeper than 1024 containers throws
ArgumentErrorinstead of blowing the stack with aStackOverflowErrorthat callers do not catch.
- fix:
-
1.3.022 Jul 2026Release notes
Open source →- feat: added
dagCborEncode, a canonical DAG-CBOR encoder (length-first map-key ordering, minimal-length integers, tag-42 CID links, and the atproto$link/$bytesmap forms). Its output is exact on both the Dart VM and the web, so a record's bytes — and therefore its CID — can be computed locally.
- feat: added
-
1.2.016 Jul 2026Release notes
Open source →- feat:
CID.toAtprotoJson()emits the atproto data-model{$link: ...}form (toJsoncontinues to emit DAG-JSON{/: ...};fromJsonaccepts both). - fix: the
bytesgetter returns an unmodifiable view, so external mutation can no longer corrupt aCIDor desync its cachedhashCode. - fix:
CID.parserejects uppercase base32 bodies, and invalid base32 characters raiseInvalidCidErrorinstead of a rawFormatException.
- feat:
-
1.1.013 Jul 2026Release notes
Open source →- fix: the
dag-pbmulticodec was wrong (0x55, which is actuallyraw). Added correctraw(0x55),dagPb2(0x70)anddagCbor(0x71)entries and fixedisDagPb/format checks so atproto blob CIDs are classified correctly and realdag-pbis no longer rejected. - chore: deprecated the incorrect
dagPb/dabCborenum values (kept for a deprecation cycle). - feat: added
CID.createFromBytes(binary overload) and a single-decodeparse. - feat:
CID.fromJsonnow accepts the atproto{"$link": <cid>}shape in addition to the DAG-JSON{"/": <cid>}shape, so atproto JSON round-trips (toJsonstill emits/). A missing/non-string value now throws a typedInvalidCidErrorinstead of aTypeError. - perf: cache normalized
bytesandhashCodeinstead of recomputing on every access.
- fix: the
-
1.0.310 Jul 2026Release notes
Open source →- fix:
CID ==now returnsfalsefor different-length or non-CIDoperands instead of throwing aRangeError/TypeError.
- fix:
-
1.0.230 Jul 2025 -
1.0.128 Jul 2025 -
1.0.1-legacy28 Jul 2025 pre-releaseNothing published for this version
-
1.0.018 Jul 2025 -
1.0.0-legacy24 Jul 2025 pre-releaseNothing published for this version
-
0.2.322 Feb 2024 -
0.2.219 Dec 2023 -
0.2.118 Aug 2023 -
0.2.013 Aug 2023Release notes
Open source →- Drop support for null unsafe Dart, bump SDK constraint to '^3.0.0'. (#599)
- Dart3 modifier applied.
-
0.1.427 Jun 2023 -
0.1.306 Jun 2023Release notes
Open source →- Improved generation of
CIDhash codes, allowing CID objects to be specified as keys for Maps, etc. (#490)
- Improved generation of
-
0.1.204 Jun 2023 -
0.1.104 Jun 2023 -
0.1.003 Jun 2023 -
0.0.102 Jun 2023