Skip to content

Commit 6c36a25

Browse files
committed
Add SoftWare Heritage persistent IDentifiers
See https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html for the technical details of that spec. Software Heritage has done a superb job promoting content addressing in general, and their identifier scheme (SWHIDs, for short) in particular. By supporting them in CIDs / IPLD, I hope the IPFS ecosystem can align itself with that effort. Per the linked documentation, SWHIDs have their own nested grammar and versioning scheme. I have taken the version 1 core identifier grammar, unrolled it, and replaced `:` with `-` per the guidelines on separators, with the result being these 5 rows. Also note that some of those schemes coincide with certain forms of `git-raw`, already in this table. However, adding them here is not redundant, because the deserialization direction. While a git-raw CID may legally point to any sort of git object, the relevant SWHIDs specify in the identifier what sort of git object is expected, and if it points to a different type of valid git object, deserialization fails. That means there is no way to losslessly convert a git-coinciding SWHID into a git-raw CID.
1 parent d4b3853 commit 6c36a25

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

table.csv

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,11 @@ ws, multiaddr, 0x01dd,
110110
wss, multiaddr, 0x01de,
111111
p2p-websocket-star, multiaddr, 0x01df,
112112
http, multiaddr, 0x01e0,
113+
swhid-1-snp, ipld, 0x01f0, SoftWare Heritage persistent IDentifier version 1 snapshot
114+
swhid-1-rel, ipld, 0x01f1, SoftWare Heritage persistent IDentifier version 1 release
115+
swhid-1-rev, ipld, 0x01f2, SoftWare Heritage persistent IDentifier version 1 revision
116+
swhid-1-dir, ipld, 0x01f3, SoftWare Heritage persistent IDentifier version 1 directory
117+
swhid-1-cnt, ipld, 0x01f4, SoftWare Heritage persistent IDentifier version 1 content
113118
json, serialization, 0x0200, JSON (UTF-8-encoded)
114119
messagepack, serialization, 0x0201, MessagePack
115120
libp2p-peer-record, libp2p, 0x0301, libp2p peer record type

0 commit comments

Comments
 (0)