IPFS implementation status Legend: 💚 Done  💛 In Progress  💔 Missing  ➖ Not planned Bitswap CLI Command Go JS ipfs ledger 💚 💛 ipfs reprovide 💚 💔 ipfs bitswap stat 💚 💚 ipfs bitswap unwant 💚 💚 ipfs bitswap wantlist 💚 💚
HTTP Endpoint Go JS /api/v0/bitswap/ledger 💚 💛 /api/v0/bitswap/reprovide 💚 💔 /api/v0/bitswap/stat 💚 💚 /api/v0/bitswap/unwant 💚 💚 /api/v0/bitswap/wantlist 💚 💚
Core See bitswap (opens new window) .
Block CLI Command Go JS ipfs block get 💚 💚 key 💚 💚 ipfs block put 💚 💚 data 💚 💚 format 💚 💚 mhtype 💚 💚 mhlen 💚 💚 ipfs block rm 💚 💚 hash 💚 💚 force 💚 💚 ipfs block stat 💚 💚 key 💚 💚
HTTP Endpoint Go JS /api/v0/block/get 💚 💚 /api/v0/block/put 💚 💚 format= 💚 💚 mhtype= 💚 💚 mhlen= 💚 💚 /api/v0/block/rm 💚 💚 force= 💚 💚 /api/v0/block/stat 💚 💚
Core See block (opens new window) .
Bootstrap CLI Command Go JS ipfs bootstrap add 💚 💚 default= 💚 💚 ipfs bootstrap list 💚 💚 ipfs bootstrap rm 💚 💚 all= 💚 💚
HTTP Endpoint Go JS /api/v0/bootstrap/add 💚 💚 default= 💚 💚 /api/v0/bootstrap/add/default 💚 💚 /api/v0/bootstrap/list 💚 💚 /api/v0/bootstrap/rm 💚 💚 all= 💚 💚 /api/v0/bootstrap/rm/all 💚 💚
Core See bootstrap (opens new window) .
Config CLI Command Go JS ipfs config edit 💚 💚 ipfs config 💚 💚 bool= 💚 💚 json= 💚 💚 ipfs config replace 💚 💚 ipfs config show 💚 💚 ipfs log level 💚 ➖ ipfs log ls 💚 ➖ ipfs log tail 💚 ➖
HTTP Endpoint Go JS /api/v0/config/edit 💚 ➖ /api/v0/config 💚 💚 bool= 💚 💚 json= 💚 💚 /api/v0/config/replace 💚 💚 /api/v0/config/show 💚 💚 /api/v0/log/level 💚 ➖ /api/v0/log/ls 💚 ➖ /api/v0/log/tail 💚 ➖
Core See config (opens new window) .
DAG CLI Command Go JS ipfs dag export 💚 💔 ipfs dag get 💚 💚 ipfs dag import 💚 💔 ipfs dag put 💚 💚 ipfs dag resolve 💚 💚
HTTP Command Go JS /api/v0/dag/export 💚 💔 /api/v0/dag/get 💚 💚 /api/v0/dag/import 💚 💔 /api/v0/dag/put 💚 💚 /api/v0/dag/resolve 💚 💚
Core See dag (opens new window) .
Stats and diagnostics CLI Command Go JS ipfs stats bitswap 💚 💚 ipfs stats bw 💚 💚 peer 💚 💚 proto 💚 💚 poll 💚 💚 interval 💚 💚 ipfs stats repo 💚 💚 ipfs diag cmds 💚 ➖ ipfs diag cmds clear 💚 ➖ ipfs diag cmds set-time 💚 ➖ time 💚 ➖ ipfs diag sys 💚 ➖
HTTP Endpoint Go JS /api/v0/stats/bitswap 💚 💚 /api/v0/stats/bw 💚 💚 peer= 💚 💚 proto= 💚 💚 poll= 💚 💚 interval= 💚 💚 /api/v0/stats/repo 💚 💚 /api/v0/diag/cmds 💚 ➖ /api/v0/diag/cmds/clear 💚 ➖ /api/v0/diag/cmds/set-time 💚 ➖ arg= 💚 ➖ /api/v0/net 💚 ➖ vis 💚 ➖ /api/v0/sys 💚 ➖
Core See stats (opens new window) .
DHT CLI Command Go JS ipfs dht findpeer 💚 💚 verbose= 💚 💔 ipfs dht findprovs 💚 💚 verbose= 💚 💔 num-providers= 💚 💚 ipfs dht get 💚 💚 verbose= 💚 💔 ipfs dht provide 💚 💚 verbose= 💚 💔 recursive= 💚 💔 ipfs dht put 💚 💚 verbose= 💚 💔 ipfs dht query 💚 💔 verbose= 💚 💔
HTTP Endpoint Go JS /api/v0/dht/findpeer 💚 💚 verbose= 💚 💔 /api/v0/dht/findprovs 💚 💚 verbose= 💚 💔 num-providers= 💚 💚 /api/v0/dht/get 💚 💚 verbose= 💚 💔 /api/v0/dht/provide 💚 💚 verbose= 💚 💔 recursive= 💚 💔 /api/v0/dht/put 💚 💚 verbose= 💚 💔 /api/v0/dht/query 💚 💚 verbose= 💚 💔
Core See dht (opens new window) .
Files CLI Command Go JS ipfs add 💚 💚 file 💚 💚 recursive 💚 💚 quiet 💚 💚 quieter 💚 💚 silent 💚 💚 progress 💚 💚 trickle 💚 💚 only-hash 💚 💚 wrap-with-directory 💚 💚 hidden 💚 💔 chunker 💚 💚 pin 💚 💚 raw-leaves 💚 💚 nocopy 💚 💔 fscache 💚 💔 cid-version 💚 💚 hash 💚 💚 ipfs cat 💚 💚 ipfs ls 💚 💚 headers 💚 💛 resolve-type 💚 💛 ipfs file ls 💚 💚 ipfs files cp 💚 💚 flush 💚 💚 ipfs files flush 💚 💚 ipfs files ls 💚 💚 ipfs files mkdir 💚 💚 parents 💚 💚 flush 💚 💚 ipfs files mv 💚 💚 flush 💚 💚 ipfs files read 💚 💚 offset 💚 💚 count 💚 💚 ipfs files rm 💚 💚 recursive 💚 💚 ipfs files stat 💚 💚 format 💚 💔 hash 💚 💚 size 💚 💚 with-local 💚 💚 ipfs files write 💚 💚 offset 💚 💚 create 💚 💚 parents 💚 💚 truncate 💚 💚 count 💚 💚 raw-leaves 💚 💚 cid-version 💚 💚 hash 💚 💚
HTTP Endpoint Go JS /api/v0/add 💚 💚 recursive= 💚 💚 quiet= 💚 💚 quieter= 💚 💚 silent= 💚 💚 progress= 💚 💚 trickle= 💚 💚 only-hash= 💚 💚 wrap-with-directory 💚 💚 hidden 💚 💔 chunker 💚 💚 pin 💚 💚 raw-leaves 💚 💚 nocopy 💚 💔 fscache 💚 💔 cid-version 💚 💚 hash 💚 💚 /api/v0/cat 💚 💚 /api/v0/ls 💚 💚 headers= 💚 💛 resolve-type= 💚 💛 /api/v0/file/ls 💚 💚 /api/v0/files/cp 💚 💚 flush=,f= 💚 💚 /api/v0/files/flush 💚 💚 /api/v0/files/ls 💚 💚 l= 💚 💚 flush=,f= 💚 💚 /api/v0/files/mkdir 💚 💚 parents=,p= 💚 💚 flush=,f= 💚 💚 /api/v0/files/mv 💚 💚 flush=,f= 💚 💚 /api/v0/files/read 💚 💚 offset=,o= 💚 💚 count=,n= 💚 💚 flush=,f= 💚 💚 /api/v0/files/rm 💚 💚 recursive=,r= 💚 💚 flush=,f= 💚 💚 /api/v0/files/stat 💚 💚 flush=,f= 💚 💚 /api/v0/files/write 💚 💚 offset=,o= 💚 💚 create=,e= 💚 💚 truncate=,t= 💚 💚 count=,n= 💚 💚 flush=,f= 💚 💚
Core See files (opens new window) .
File store (IPFS pack) Note: Implementation in js-ipfs is not planned for now.
CLI HTTP Core Key management CLI Command Go JS ipfs key gen 💚 💚 type= 💚 💚 size= 💚 💚 ipfs key list 💚 💚 l= 💚 💚 ipfs key rename 💚 💚 force= 💚 💚 ipfs key rm 💚 💚 l= 💚 💚 ipfs key rm 💚 💚 ipfs key export 💔 💚 ipfs key import 💔 💚
HTTP Endpoint Go JS /api/v0/key/gen 💚 💚 type= 💚 💚 size= 💚 💚 /api/v0/key/list 💚 💚 l= 💚 💚 /api/v0/key/rename 💚 💚 force= 💚 💚 /api/v0/key/rm 💚 💚 l= 💚 💚 /api/v0/key/export 💔 💚 /api/v0/key/import 💔 💚
Core See key (opens new window) .
Miscellaneous CLI Command Go JS ipfs ping 💚 💚 count 💚 💚 ipfs update ➖ ➖ ipfs version 💚 💚 ipfs commands 💚 💚 ipfs id 💚 💚 format 💚 💚 ipfs mount 💚 ➖ ipfs-path= 💚 ➖ ipns-path= 💚 ➖
HTTP Endpoint Go JS /api/v0/ping 💚 💚 count= 💚 💚 /api/v0/update ➖ ➖ /api/v0/version 💚 💚 /api/v0/commands 💚 💚 /api/v0/id 💚 💚 format= 💚 💚 /api/v0/mount 💚 ➖ ipfs-path= 💚 ➖ ipns-path= 💚 ➖
Core See misc (opens new window) .
Naming Note: Implementation in js-ipfs is blocked until DHT is finished.
CLI Command Go JS ipfs name publish 💚 💚 resolve= 💚 💚 lifetime= 💚 💚 ttl= 💚 💚 key= 💚 💚 ipfs name resolve 💚 💚 recursive= 💚 💚 nocache= 💚 💚 ipfs name pubsub 💚 💚 ipfs name resolve 💚 💚 ipfs resolve 💚 💚 recursive= 💚 💚 ipfs dns 💚 💚 recursive= 💚 💚
HTTP Endpoint Go JS /api/v0/name/publish 💚 💚 resolve= 💚 💚 lifetime= 💚 💚 ttl= 💚 💚 key= 💚 💚 /api/v0/name/resolve 💚 💚 recursive= 💚 💚 nocache= 💚 💚 /api/v0/name/pubsub 💚 💚 /api/v0/resolve 💚 💚 recursive= 💚 💚 /api/v0/dns 💚 💚 recursive= 💚 💚
Core See name (opens new window) and misc (opens new window) .
Object CLI Endpoint Go JS ipfs object data 💚 💚 ipfs object diff 💚 💔 ipfs object get 💚 💚 encoding 💚 💚 ipfs object links 💚 💚 ipfs object new 💚 💚 ipfs object patch append-data 💚 💚 ipfs object patch add-link 💚 💚 create 💚 💔 ipfs object patch rm-link 💚 💚 ipfs object patch set-data 💚 💚 ipfs object put 💚 💚 inputenc 💚 💚 datafieldenc 💚 💔 pin 💚 💔 ipfs object stat 💚 💚
HTTP Endpoint Go JS /api/v0/object/data 💚 💚 /api/v0/object/diff 💚 💔 /api/v0/object/get 💚 💚 encoding=json,enc=json 💚 💚 encoding=protobuf,enc=protobuf 💚 💚 encoding=xml,enc=xml 💚 💚 /api/v0/object/links 💚 💚 /api/v0/object/new 💚 💚 /api/v0/object/patch/append-data 💚 💚 /api/v0/object/patch/add-link 💚 💚 create= 💚 💚 /api/v0/object/patch/rm-link 💚 💚 /api/v0/object/patch/set-data 💚 💚 /api/v0/object/put 💚 💚 inputenc 💚 💚 /api/v0/object/stat 💚 💚
Core See object (opens new window) .
p2p (libp2p exposed API) This is blocked until there is a formalized interface-libp2p . Currently, js-ipfs exposes libp2p directly while Kubo exposes a subset of commands that use libp2p.
CLI HTTP Core See core (opens new window) .
Pinning CLI Command Go JS ipfs pin add 💚 💚 recursive 💚 💚 progress 💚 💔 ipfs pin ls 💚 💚 type 💚 💚 quiet 💚 💚 ipfs pin rm 💚 💚 recursive 💚 💚 ipfs pin update 💚 💔 ipfs pin verify 💚 💔 verbose 💚 💔 ipfs refs 💚 💚 format 💚 💚 edges 💚 💚 unique 💚 💚 recursive 💚 💚 ipfs refs local 💚 💚
HTTP Endpoint Go JS /api/v0/pin/add 💚 💚 recursive= 💚 💚 /api/v0/pin/ls 💚 💚 type= 💚 💚 quiet= 💚 💚 /api/v0/pin/rm 💚 💚 recursive= 💚 💚 /api/v0/pin/update 💚 💔 unpin= 💚 💔 /api/v0/pin/verify 💚 💔 verbose= 💚 💔 /api/v0/refs 💚 💚 format= 💚 💚 edges= 💚 💚 unique= 💚 💚 recursive= 💚 💚 /api/v0//refs/local 💚 💚
Core See pin (opens new window) and refs (opens new window) .
PubSub CLI Command Go JS ipfs pubsub ls 💚 💚 ipfs pubsub peers 💚 💚 ipfs pubsub pub 💚 💚 ipfs pubsub sub 💚 💚 discover 💚 💔
HTTP Endpoint Go JS /api/v0/pubsub/ls 💚 💚 /api/v0/pubsub/peers 💚 💚 /api/v0/pubsub/pub 💚 💚 /api/v0/pubsub/sub 💚 💚 discover= 💚 💔
Core See pubsub (opens new window) .
Repo CLI Command Go JS ipfs repo fsck 💚 ➖ ipfs repo gc 💚 💚 ipfs repo stat 💚 💚 ipfs repo verify 💚 ➖ ipfs repo version 💚 💚
HTTP Endpoint Go JS /api/v0/repo/fsck 💚 ➖ /api/v0/repo/gc 💚 💚 /api/v0/repo/stat 💚 💚 /api/v0/repo/verify 💚 ➖ /api/v0/repo/version 💚 💚
Core See repo (opens new window) .
Swarm CLI Command Go JS ipfs swarm addrs 💚 💚 ipfs swarm addrs listen 💚 💔 ipfs swarm addrs local 💚 💚 ipfs swarm connect 💚 💚 ipfs swarm disconnect 💚 💚 ipfs swarm filters 💚 💔 ipfs swarm filters add 💚 💔 ipfs swarm filters rm 💚 💔 ipfs swarm peers 💚 💚 verbose= 💚 💚 latency= 💚 💚 streams= 💚 💚
HTTP Endpoint Go JS /api/v0/swarm/addrs 💚 💚 /api/v0/swarm/addrs/listen 💚 💔 /api/v0/swarm/addrs/local 💚 💚 /api/v0/swarm/connect 💚 💚 /api/v0/swarm/disconnect 💚 💚 /api/v0/swarm/filters 💚 💔 /api/v0/swarm/filters/add 💚 💔 /api/v0/swarm/filters/rm 💚 💔 /api/v0/swarm/peers 💚 💚 verbose= 💚 💚 latency= 💚 💚 streams= 💚 💚
Core See swarm (opens new window) .