Implementation Report

Below is the latest implementation report, generated by the report.py script and included verbatim from report.txt:

┌────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Multiformats implementation report v0.3.1.post0+g48a40f2.d20231219                                         │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
──────────────────────────────────────────────── Memory Usage ────────────────────────────────────────────────
> memory baseline: 36.9MiB
> multiformats memory total:     1.0MiB
┌───────────────────┬────────────┬────────┬──────────┐
│ Component         │ Obj. count │ Memory │ Memory % │
├───────────────────┼────────────┼────────┼──────────┤
│ typing-extensions │        432 │  93KiB │       9% │
│ typing-validation │        698 │ 117KiB │      11% │
│ bases             │       1301 │ 248KiB │      24% │
│ multiformats      │       4921 │ 566KiB │      55% │
└───────────────────┴────────────┴────────┴──────────┘
──────────────────────────────────────────── Multihash functions ─────────────────────────────────────────────
> Multihash functions implemented: 340/363
┌──────────────────────────────────┬──────────────────────────────┬──────────────────────┬─────────┬────────┐
│ Code                             │ Name                         │ Bitsize              │ Implem. │ Status │
├──────────────────────────────────┼──────────────────────────────┼──────────────────────┼─────────┼────────┤
│ 0x0                              │ identity                     │                      │ yes     │ perm.  │
│ 0x11                             │ sha1                         │ 160                  │ yes     │ perm.  │
│ {0x12, 0x13, 0x20, 0x1013}       │ sha2-Bitsize                 │ {224, 256, 384, 512} │ yes     │ perm.  │
│ {0x14, 0x15, 0x16, 0x17}         │ sha3-Bitsize                 │ {224, 256, 384, 512} │ yes     │ perm.  │
│ {0x18, 0x19}                     │ shake-Bitsize                │ {256, 512}           │ yes     │ draft  │
│ {0x1a, 0x1b, 0x1c, 0x1d}         │ keccak-Bitsize               │ {224, 256, 384, 512} │ no      │ draft  │
│ 0x1e                             │ blake3                       │                      │ yes     │ draft  │
│ {0x22, 0x1022}                   │ murmur3-x64-Bitsize          │ {64, 128}            │ no      │ perm.  │
│ 0x23                             │ murmur3-32                   │ 32                   │ no      │ draft  │
│ 0x56                             │ dbl-sha2-256                 │ 256                  │ yes     │ draft  │
│ 0xd4                             │ md4                          │                      │ no      │ draft  │
│ 0xd5                             │ md5                          │ 128                  │ yes     │ draft  │
│ 0x132                            │ crc32                        │                      │ no      │ draft  │
│ 0x164                            │ crc64-ecma                   │                      │ no      │ draft  │
│ 0x1012                           │ sha2-256-trunc254-padded     │ 256                  │ yes     │ perm.  │
│ {0x1014, 0x1015}                 │ sha2-512-Bitsize             │ {224, 256}           │ yes     │ perm.  │
│ {0x1052, 0x1053, 0x1054, 0x1055} │ ripemd-Bitsize               │ {128, 160, 256, 320} │ 1/4     │ draft  │
│ 0x1100                           │ x11                          │                      │ no      │ draft  │
│ 0x1d01                           │ kangarootwelve               │                      │ yes     │ draft  │
│ 0x534d                           │ sm3-256                      │ 256                  │ no      │ draft  │
│ 0x7012                           │ sha256a                      │                      │ no      │ draft  │
│ {0xb201, 0xb202, ..., 0xb240}    │ blake2b-Bitsize              │ {8, 16, ..., 512}    │ yes     │ draft  │
│ {0xb241, 0xb242, ..., 0xb260}    │ blake2s-Bitsize              │ {8, 16, ..., 256}    │ yes     │ draft  │
│ {0xb301, 0xb302, ..., 0xb320}    │ skein256-Bitsize             │ {8, 16, ..., 256}    │ yes     │ draft  │
│ {0xb321, 0xb322, ..., 0xb360}    │ skein512-Bitsize             │ {8, 16, ..., 512}    │ yes     │ draft  │
│ {0xb361, 0xb362, ..., 0xb3e0}    │ skein1024-Bitsize            │ {8, 16, ..., 1024}   │ yes     │ draft  │
│ {0xb3e1, 0xb3e2}                 │ xxh-Bitsize                  │ {32, 64}             │ no      │ draft  │
│ {0xb3e3, 0xb3e4}                 │ xxh3-Bitsize                 │ {64, 128}            │ no      │ draft  │
│ 0xb401                           │ poseidon-bls12_381-a2-fc1    │                      │ no      │ perm.  │
│ 0xb402                           │ poseidon-bls12_381-a2-fc1-sc │                      │ no      │ draft  │
│ 0xb502                           │ ssz-sha2-256-bmt             │                      │ no      │ draft  │
└──────────────────────────────────┴──────────────────────────────┴──────────────────────┴─────────┴────────┘
──────────────────────────────────────────── Multiaddr protocols ─────────────────────────────────────────────
> Multiaddr protocols implemented: 18/43
┌──────────┬────────────────────┬─────────┬────────┐
│ Code     │ Name               │ Implem. │ Status │
├──────────┼────────────────────┼─────────┼────────┤
│ 0x4      │ ip4                │ yes     │ perm.  │
│ 0x6      │ tcp                │ yes     │ perm.  │
│ 0x21     │ dccp               │ no      │ draft  │
│ 0x29     │ ip6                │ yes     │ perm.  │
│ 0x2a     │ ip6zone            │ no      │ draft  │
│ 0x2b     │ ipcidr             │ no      │ draft  │
│ 0x35     │ dns                │ no      │ perm.  │
│ 0x36     │ dns4               │ no      │ perm.  │
│ 0x37     │ dns6               │ no      │ perm.  │
│ 0x38     │ dnsaddr            │ no      │ perm.  │
│ 0x84     │ sctp               │ no      │ draft  │
│ 0x111    │ udp                │ yes     │ draft  │
│ 0x113    │ p2p-webrtc-star    │ yes     │ depr.  │
│ 0x114    │ p2p-webrtc-direct  │ yes     │ depr.  │
│ 0x115    │ p2p-stardust       │ yes     │ depr.  │
│ 0x118    │ webrtc-direct      │ no      │ draft  │
│ 0x119    │ webrtc             │ no      │ draft  │
│ 0x122    │ p2p-circuit        │ yes     │ perm.  │
│ 0x12d    │ udt                │ yes     │ draft  │
│ 0x12e    │ utp                │ yes     │ draft  │
│ 0x190    │ unix               │ no      │ perm.  │
│ 0x196    │ thread             │ no      │ draft  │
│ 0x1a5    │ p2p                │ no      │ perm.  │
│ 0x1bb    │ https              │ yes     │ draft  │
│ 0x1bc    │ onion              │ no      │ draft  │
│ 0x1bd    │ onion3             │ no      │ draft  │
│ 0x1be    │ garlic64           │ no      │ draft  │
│ 0x1bf    │ garlic32           │ no      │ draft  │
│ 0x1c0    │ tls                │ yes     │ draft  │
│ 0x1c1    │ sni                │ no      │ draft  │
│ 0x1c6    │ noise              │ yes     │ draft  │
│ 0x1c8    │ shs                │ no      │ draft  │
│ 0x1cc    │ quic               │ yes     │ perm.  │
│ 0x1cd    │ quic-v1            │ no      │ perm.  │
│ 0x1d1    │ webtransport       │ no      │ draft  │
│ 0x1d2    │ certhash           │ no      │ draft  │
│ 0x1dd    │ ws                 │ yes     │ perm.  │
│ 0x1de    │ wss                │ yes     │ perm.  │
│ 0x1df    │ p2p-websocket-star │ yes     │ perm.  │
│ 0x1e0    │ http               │ yes     │ draft  │
│ 0x3f42   │ silverpine         │ no      │ draft  │
│ 0x706c61 │ plaintextv2        │ no      │ draft  │
│ 0xd02000 │ scion              │ no      │ draft  │
└──────────┴────────────────────┴─────────┴────────┘
───────────────────────────────────────────────── Multibases ─────────────────────────────────────────────────
> Multibases implemented: 24/25
┌──────────┬───────────────────┬─────────┬──────────┐
│ Code     │ Name              │ Implem. │ Status   │
├──────────┼───────────────────┼─────────┼──────────┤
│ 0x00     │ identity          │ yes     │ resrvd.  │
│ 0        │ base2             │ yes     │ experim. │
│ 7        │ base8             │ yes     │ draft    │
│ 9        │ base10            │ yes     │ draft    │
│ B        │ base32upper       │ yes     │ final    │
│ C        │ base32padupper    │ yes     │ draft    │
│ F        │ base16upper       │ yes     │ final    │
│ K        │ base36upper       │ yes     │ draft    │
│ M        │ base64pad         │ yes     │ experim. │
│ T        │ base32hexpadupper │ yes     │ experim. │
│ U        │ base64urlpad      │ yes     │ final    │
│ V        │ base32hexupper    │ yes     │ experim. │
│ Z        │ base58flickr      │ yes     │ experim. │
│ b        │ base32            │ yes     │ final    │
│ c        │ base32pad         │ yes     │ draft    │
│ f        │ base16            │ yes     │ final    │
│ h        │ base32z           │ yes     │ draft    │
│ k        │ base36            │ yes     │ draft    │
│ m        │ base64            │ yes     │ final    │
│ p        │ proquint          │ yes     │ experim. │
│ t        │ base32hexpad      │ yes     │ experim. │
│ u        │ base64url         │ yes     │ final    │
│ v        │ base32hex         │ yes     │ experim. │
│ z        │ base58btc         │ yes     │ final    │
│ 0x01F680 │ base256emoji      │ no      │ experim. │
└──────────┴───────────────────┴─────────┴──────────┘
───────────────────────────────────────────── Other Multicodecs ──────────────────────────────────────────────
┌──────────┬────────────────────────────────┬───────────────┬────────┐
│ Code     │ Name                           │ Tag           │ Status │
├──────────┼────────────────────────────────┼───────────────┼────────┤
│ 0x1      │ cidv1                          │ cid           │ perm.  │
│ 0x2      │ cidv2                          │ cid           │ draft  │
│ 0x3      │ cidv3                          │ cid           │ draft  │
│ 0x22     │ murmur3-x64-64                 │ hash          │ perm.  │
│ 0x23     │ murmur3-32                     │ hash          │ draft  │
│ 0x2f     │ path                           │ namespace     │ perm.  │
│ 0x30     │ multicodec                     │ multiformat   │ draft  │
│ 0x31     │ multihash                      │ multiformat   │ draft  │
│ 0x32     │ multiaddr                      │ multiformat   │ draft  │
│ 0x33     │ multibase                      │ multiformat   │ draft  │
│ 0x34     │ varsig                         │ multiformat   │ draft  │
│ 0x50     │ protobuf                       │ serialization │ draft  │
│ 0x51     │ cbor                           │ ipld          │ perm.  │
│ 0x55     │ raw                            │ ipld          │ perm.  │
│ 0x60     │ rlp                            │ serialization │ draft  │
│ 0x63     │ bencode                        │ serialization │ draft  │
│ 0x70     │ dag-pb                         │ ipld          │ perm.  │
│ 0x71     │ dag-cbor                       │ ipld          │ perm.  │
│ 0x72     │ libp2p-key                     │ ipld          │ perm.  │
│ 0x78     │ git-raw                        │ ipld          │ perm.  │
│ 0x7b     │ torrent-info                   │ ipld          │ draft  │
│ 0x7c     │ torrent-file                   │ ipld          │ draft  │
│ 0x81     │ leofcoin-block                 │ ipld          │ draft  │
│ 0x82     │ leofcoin-tx                    │ ipld          │ draft  │
│ 0x83     │ leofcoin-pr                    │ ipld          │ draft  │
│ 0x85     │ dag-jose                       │ ipld          │ draft  │
│ 0x86     │ dag-cose                       │ ipld          │ draft  │
│ 0x8c     │ lbry                           │ namespace     │ draft  │
│ 0x90     │ eth-block                      │ ipld          │ perm.  │
│ 0x91     │ eth-block-list                 │ ipld          │ perm.  │
│ 0x92     │ eth-tx-trie                    │ ipld          │ perm.  │
│ 0x93     │ eth-tx                         │ ipld          │ perm.  │
│ 0x94     │ eth-tx-receipt-trie            │ ipld          │ perm.  │
│ 0x95     │ eth-tx-receipt                 │ ipld          │ perm.  │
│ 0x96     │ eth-state-trie                 │ ipld          │ perm.  │
│ 0x97     │ eth-account-snapshot           │ ipld          │ perm.  │
│ 0x98     │ eth-storage-trie               │ ipld          │ perm.  │
│ 0x99     │ eth-receipt-log-trie           │ ipld          │ draft  │
│ 0x9a     │ eth-receipt-log                │ ipld          │ draft  │
│ 0xa0     │ aes-128                        │ key           │ draft  │
│ 0xa1     │ aes-192                        │ key           │ draft  │
│ 0xa2     │ aes-256                        │ key           │ draft  │
│ 0xa3     │ chacha-128                     │ key           │ draft  │
│ 0xa4     │ chacha-256                     │ key           │ draft  │
│ 0xb0     │ bitcoin-block                  │ ipld          │ perm.  │
│ 0xb1     │ bitcoin-tx                     │ ipld          │ perm.  │
│ 0xb2     │ bitcoin-witness-commitment     │ ipld          │ perm.  │
│ 0xc0     │ zcash-block                    │ ipld          │ perm.  │
│ 0xc1     │ zcash-tx                       │ ipld          │ perm.  │
│ 0xca     │ caip-50                        │ multiformat   │ draft  │
│ 0xce     │ streamid                       │ namespace     │ draft  │
│ 0xd0     │ stellar-block                  │ ipld          │ draft  │
│ 0xd1     │ stellar-tx                     │ ipld          │ draft  │
│ 0xe0     │ decred-block                   │ ipld          │ draft  │
│ 0xe1     │ decred-tx                      │ ipld          │ draft  │
│ 0xe2     │ ipld                           │ namespace     │ draft  │
│ 0xe3     │ ipfs                           │ namespace     │ draft  │
│ 0xe4     │ swarm                          │ namespace     │ draft  │
│ 0xe5     │ ipns                           │ namespace     │ draft  │
│ 0xe6     │ zeronet                        │ namespace     │ draft  │
│ 0xe7     │ secp256k1-pub                  │ key           │ draft  │
│ 0xe8     │ dnslink                        │ namespace     │ perm.  │
│ 0xea     │ bls12_381-g1-pub               │ key           │ draft  │
│ 0xeb     │ bls12_381-g2-pub               │ key           │ draft  │
│ 0xec     │ x25519-pub                     │ key           │ draft  │
│ 0xed     │ ed25519-pub                    │ key           │ draft  │
│ 0xee     │ bls12_381-g1g2-pub             │ key           │ draft  │
│ 0xef     │ sr25519-pub                    │ key           │ draft  │
│ 0xf0     │ dash-block                     │ ipld          │ draft  │
│ 0xf1     │ dash-tx                        │ ipld          │ draft  │
│ 0xfa     │ swarm-manifest                 │ ipld          │ draft  │
│ 0xfb     │ swarm-feed                     │ ipld          │ draft  │
│ 0xfc     │ beeson                         │ ipld          │ draft  │
│ 0x129    │ dag-json                       │ ipld          │ perm.  │
│ 0x132    │ crc32                          │ hash          │ draft  │
│ 0x164    │ crc64-ecma                     │ hash          │ draft  │
│ 0x1f0    │ swhid-1-snp                    │ ipld          │ draft  │
│ 0x200    │ json                           │ ipld          │ perm.  │
│ 0x201    │ messagepack                    │ serialization │ draft  │
│ 0x202    │ car                            │ serialization │ draft  │
│ 0x300    │ ipns-record                    │ serialization │ perm.  │
│ 0x301    │ libp2p-peer-record             │ libp2p        │ perm.  │
│ 0x302    │ libp2p-relay-rsvp              │ libp2p        │ perm.  │
│ 0x309    │ memorytransport                │ libp2p        │ perm.  │
│ 0x400    │ car-index-sorted               │ serialization │ draft  │
│ 0x401    │ car-multihash-index-sorted     │ serialization │ draft  │
│ 0x900    │ transport-bitswap              │ transport     │ draft  │
│ 0x910    │ transport-graphsync-filecoinv1 │ transport     │ draft  │
│ 0x920    │ transport-ipfs-gateway-http    │ transport     │ draft  │
│ 0xd1d    │ multidid                       │ multiformat   │ draft  │
│ 0x1022   │ murmur3-x64-128                │ hash          │ draft  │
│ 0x1200   │ p256-pub                       │ key           │ draft  │
│ 0x1201   │ p384-pub                       │ key           │ draft  │
│ 0x1202   │ p521-pub                       │ key           │ draft  │
│ 0x1203   │ ed448-pub                      │ key           │ draft  │
│ 0x1204   │ x448-pub                       │ key           │ draft  │
│ 0x1205   │ rsa-pub                        │ key           │ draft  │
│ 0x1206   │ sm2-pub                        │ key           │ draft  │
│ 0x1300   │ ed25519-priv                   │ key           │ draft  │
│ 0x1301   │ secp256k1-priv                 │ key           │ draft  │
│ 0x1302   │ x25519-priv                    │ key           │ draft  │
│ 0x1303   │ sr25519-priv                   │ key           │ draft  │
│ 0x1305   │ rsa-priv                       │ key           │ draft  │
│ 0x1306   │ p256-priv                      │ key           │ draft  │
│ 0x1307   │ p384-priv                      │ key           │ draft  │
│ 0x1308   │ p521-priv                      │ key           │ draft  │
│ 0x1309   │ bls12_381-g1-priv              │ key           │ draft  │
│ 0x130a   │ bls12_381-g2-priv              │ key           │ draft  │
│ 0x130b   │ bls12_381-g1g2-priv            │ key           │ draft  │
│ 0x2000   │ aes-gcm-256                    │ encryption    │ draft  │
│ 0x7012   │ sha256a                        │ hash          │ draft  │
│ 0xb3e1   │ xxh-32                         │ hash          │ draft  │
│ 0xb3e2   │ xxh-64                         │ hash          │ draft  │
│ 0xb3e3   │ xxh3-64                        │ hash          │ draft  │
│ 0xb3e4   │ xxh3-128                       │ hash          │ draft  │
│ 0xb403   │ rdfc-1                         │ ipld          │ draft  │
│ 0xb501   │ ssz                            │ serialization │ draft  │
│ 0xb601   │ json-jcs                       │ ipld          │ draft  │
│ 0xcc01   │ iscc                           │ softhash      │ draft  │
│ 0xce11   │ zeroxcert-imprint-256          │ zeroxcert     │ draft  │
│ 0xd000   │ nonstandard-sig                │ varsig        │ perm.  │
│ 0xd0e7   │ es256k                         │ varsig        │ draft  │
│ 0xd0ea   │ bls-12381-g1-sig               │ varsig        │ draft  │
│ 0xd0eb   │ bls-12381-g2-sig               │ varsig        │ draft  │
│ 0xd0ed   │ eddsa                          │ varsig        │ draft  │
│ 0xd191   │ eip-191                        │ varsig        │ draft  │
│ 0xeb51   │ jwk_jcs-pub                    │ key           │ draft  │
│ 0xf101   │ fil-commitment-unsealed        │ filecoin      │ perm.  │
│ 0xf102   │ fil-commitment-sealed          │ filecoin      │ perm.  │
│ 0x807124 │ holochain-adr-v0               │ holochain     │ draft  │
│ 0x817124 │ holochain-adr-v1               │ holochain     │ draft  │
│ 0x947124 │ holochain-key-v0               │ holochain     │ draft  │
│ 0x957124 │ holochain-key-v1               │ holochain     │ draft  │
│ 0xa27124 │ holochain-sig-v0               │ holochain     │ draft  │
│ 0xa37124 │ holochain-sig-v1               │ holochain     │ draft  │
│ 0xb19910 │ skynet-ns                      │ namespace     │ draft  │
│ 0xb29910 │ arweave-ns                     │ namespace     │ draft  │
│ 0xb39910 │ subspace-ns                    │ namespace     │ draft  │
│ 0xb49910 │ kumandra-ns                    │ namespace     │ draft  │
│ 0xd01200 │ es256                          │ varsig        │ draft  │
│ 0xd01201 │ es284                          │ varsig        │ draft  │
│ 0xd01202 │ es512                          │ varsig        │ draft  │
│ 0xd01205 │ rs256                          │ varsig        │ draft  │
└──────────┴────────────────────────────────┴───────────────┴────────┘