NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #3891 most downloaded on pub.dev
Core library for parsing IPFS-related things. This package is mainly used by https://atprotodart.com packages.
Last release 2 months 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
fix: dagCborEncode keeps its documented ArgumentError/InvalidCidError contract for a sole-$bytes map whose value is not valid base64, which previously
dagCborEncode keeps its documented ArgumentError/InvalidCidError contract for a sole-$bytes map whose value is not valid base64, which previously leaked a raw FormatException — reachable from user-supplied $unknown data.$link or sole-$bytes map whose value is not a String now throws ArgumentError instead of being silently encoded as an ordinary one-entry map, which turned a typo into a valid-looking but wrong CID.ArgumentError instead of blowing the stack with a StackOverflowError that callers do not catch.feat: added dagCborEncode, a canonical DAG-CBOR encoder (length-first map-key ordering, minimal-length integers, tag-42 CID links, and the atproto $li
dagCborEncode, a canonical DAG-CBOR encoder (length-first map-key ordering, minimal-length integers, tag-42 CID links, and the atproto $link/$bytes map 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.One column per quarter.
feat: CID.toAtprotoJson() emits the atproto data-model {$link: ...} form (toJson continues to emit DAG-JSON {/: ...}; fromJson accepts both).
CID.toAtprotoJson() emits the atproto data-model {$link: ...} form (toJson continues to emit DAG-JSON {/: ...}; fromJson accepts both).bytes getter returns an unmodifiable view, so external mutation can no longer corrupt a CID or desync its cached hashCode.CID.parse rejects uppercase base32 bodies, and invalid base32 characters raise InvalidCidError instead of a raw FormatException.chore: deprecated the incorrect dagPb/dabCbor enum values (kept for a deprecation cycle).
dag-pb multicodec was wrong (0x55, which is actually raw). Added correct raw(0x55), dagPb2(0x70) and dagCbor(0x71) entries and fixed isDagPb/format checks so atproto blob CIDs are classified correctly and real dag-pb is no longer rejected.dagPb/dabCbor enum values (kept for a deprecation cycle).CID.createFromBytes (binary overload) and a single-decode parse.CID.fromJson now accepts the atproto {"$link": <cid>} shape in addition to the DAG-JSON {"/": <cid>} shape, so atproto JSON round-trips (toJson still emits /). A missing/non-string value now throws a typed InvalidCidError instead of a TypeError.bytes and hashCode instead of recomputing on every access.fix: CID == now returns false for different-length or non-CID operands instead of throwing a RangeError/TypeError.
CID == now returns false for different-length or non-CID operands instead of throwing a RangeError/TypeError.Fix SDK constraint to '">=3.8.0 <4.0.0"'.
- chore: optimized docs.
Nothing published for this version
Bump SDK constraint to '^3.8.0'.
Nothing published for this version
Bump SDK constraint to '^3.3.0'.
- Very minor change.
- Improved documents.
Drop support for null unsafe Dart, bump SDK constraint to '^3.0.0'.
Added homepage in pubspec.yaml.
homepage in pubspec.yaml. (#549)Improved generation of CID hash codes, allowing CID objects to be specified as keys for Maps, etc.
CID hash codes, allowing CID objects to be specified as keys for Maps, etc. (#490)- Supported dag-cbor.
dag-cbor. (#484)- Fixed a bug in CID.
CID. (#482)Added CID.create factory. Now you can create CID from specific text.
- First Release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →