# 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 go-ipfs 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).