DASL Differential Testing Tool
These are the known DASL/DAG-CBOR implementations tested by the DASL Test Suite and used in DASLint. Each encodes and decodes CBOR differently — DASLint compares their output to surface discrepancies in real ATProto records.
| Library | Language | Type | Tag 42
CBOR Tag 42 is how DAG-CBOR encodes CID links — content identifiers that reference other data. Libraries that support Tag 42 correctly encode CID links as binary CBOR tags, producing the correct bytes and CID hashes. Without it, CID links are treated as plain objects, resulting in different bytes and broken content verification. Essential for ATProto and IPLD interoperability.
|
Notes | GitHub |
|---|---|---|---|---|---|
| @atcute/cborIn DASLint | TypeScript | Strict DAG-CBOR | ✓ | ATProto ecosystem reference. Handles CID link tags correctly. | mary-ext/atcute |
| @ipld/dag-cborIn DASLint | JavaScript | Strict DAG-CBOR | ✓ | Official IPLD JavaScript implementation. | ipld/js-dag-cbor |
| dag-cbrrr | Python | Strict DAG-CBOR | ✓ | ATProto-focused. Fast, written for Bluesky tooling. | DavidBuchanan314/dag-cbrrr |
| python-libipld | Python / Rust | Strict DAG-CBOR | ✓ | Rust libipld bindings for Python. | MarshalX/python-libipld |
| go-dasl | Go | Strict DAG-CBOR | ✓ | Official DASL Go implementation. | hyphacoop/go-dasl |
| go-ipld-prime | Go | DAG-CBOR | ✓ | IPLD data model for Go. Used in IPFS and Filecoin. | ipld/go-ipld-prime |
| go-ipld-cbor | Go | DAG-CBOR | ✓ | Legacy IPLD CBOR for Go. | ipfs/go-ipld-cbor |
| serde_ipld_dagcbor | Rust | Strict DAG-CBOR | ✓ | Serde-based DAG-CBOR for Rust. Used in performance-critical apps. | ipld/serde_ipld_dagcbor |
| libipld | Rust | DAG-CBOR | ✓ | Core IPLD library for Rust. | ipld/libipld |
| n0_dasl | Rust | Strict DAG-CBOR | ✓ | Number Zero's DASL implementation for Rust. | n0-computer/dasl |
| java-dag-cbor | Java | DAG-CBOR | ✓ | Java DAG-CBOR implementation by Peergos. | Peergos/dag-cbor |
| cborg | JavaScript | Generic CBOR | ✗ | IPLD team's encoder/decoder. Underlying engine for @ipld/dag-cbor. No tag 42 awareness standalone. | rvagg/cborg |
| cbor-x | JavaScript | Generic CBOR | ✗ | Fast generic CBOR. No DAG-CBOR or tag 42 support. | kriszyp/cbor-x |