Skip to content
Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
883 lines (736 sloc) 53.2 KB

IPFS Implementation Status

Legend: 🍏 Done   🍋 In Progress   🍅 Missing   🌰 Not planned

Table of Contents

API

Bitswap

CLI

Command Go Impl JS Impl
ipfs ledger 🍏 🍋
peer 🍏 🍋
ipfs reprovide 🍏 🍅
ipfs bitswap stat 🍏 🍏
ipfs bitswap unwant 🍏 🍏
key 🍏 🍏
ipfs bitswap wantlist 🍏 🍏
peer 🍏 🍏

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/bitswap/ledger 🍏 🍋
arg= 🍏 🍋
GET /api/v0/bitswap/reprovide 🍏 🍅
GET /api/v0/bitswap/stat 🍏 🍏
GET /api/v0/bitswap/unwant 🍏 🍏
arg= 🍏 🍏
GET /api/v0/bitswap/wantlist 🍏 🍏
peer= 🍏 🍏

Core

See interface-ipfs-core.


Block ipfs block

CLI

Command Go Impl JS Impl
ipfs block get 🍏 🍏
key 🍏 🍏
ipfs block put 🍏 🍏
data 🍏 🍏
format 🍏 🍏
mhtype 🍏 🍏
mhlen 🍏 🍏
ipfs block rm 🍏 🍋
hash 🍏 🍋
force 🍏 🍋
ipfs block stat 🍏 🍏
key 🍏 🍏

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/block/get 🍏 🍏
arg= 🍏 🍏
POST /api/v0/block/put 🍏 🍏
arg= 🍏 🍏
format= 🍏 🍏
mhtype= 🍏 🍏
mhlen= 🍏 🍏
GET /api/v0/block/rm 🍏 🍋
arg= 🍏 🍋
force= 🍏 🍋
GET /api/v0/block/stat 🍏 🍏
arg= 🍏 🍏

Core

See interface-ipfs-core.


Bootstrap

CLI

Command Go Impl JS Impl
ipfs bootstrap add 🍏 🍏
arg= 🍏 🍏
default= 🍏 🍏
ipfs bootstrap list 🍏 🍏
ipfs bootstrap rm 🍏 🍏
arg= 🍏 🍏
all= 🍏 🍏

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/bootstrap/add 🍏 🍏
arg= 🍏 🍏
default= 🍏 🍏
GET /api/v0/bootstrap/add/default 🍏 🍅
GET /api/v0/bootstrap/list 🍏 🍏
GET /api/v0/bootstrap/rm 🍏 🍏
arg= 🍏 🍏
all= 🍏 🍏
GET /api/v0/bootstrap/rm/all 🍏 🍅

Core

See interface-ipfs-core.


Config

CLI

Command Go Impl JS Impl
ipfs config edit 🍏 🌰
ipfs config 🍏 🌰
key 🍏 🍏
value 🍏 🍏
bool= 🍏 🍏
json= 🍏 🍏
ipfs config replace 🍏 🍏
file 🍏 🍏
ipfs config show 🍏 🍏
ipfs log level 🍏 🌰
subsystem 🍏 🌰
level 🍏 🌰
ipfs log ls 🍏 🌰
ipfs log tail 🍏 🌰

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/config/edit 🍏 🌰
POST /api/v0/config 🍏 🌰
arg1= 🍏 🍏
arg2= 🍏 🍏
bool= 🍏 🍏
json= 🍏 🍏
POST /api/v0/config/replace 🍏 🍏
arg= 🍏 🍏
GET /api/v0/config/show 🍏 🍏
POST /api/v0/log/level 🍏 🌰
arg1= 🍏 🌰
arg2= 🍏 🌰
GET /api/v0/log/ls 🍏 🌰
GET /api/v0/log/tail 🍏 🌰

Core

See interface-ipfs-core.


DAG

Blocked until the following are resolved:

CLI

HTTP

Core

See interface-ipfs-core.


Stats and Diagnostics

CLI

Command Go Impl JS Impl
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 Impl JS Impl
GET /api/v0/stats/bitswap 🍏 🍅
POST /api/v0/stats/bw 🍏 🍅
peer= 🍏 🍅
proto= 🍏 🍅
poll= 🍏 🍅
interval= 🍏 🍅
GET /api/v0/stats/repo 🍏 🍅
GET /api/v0/diag/cmds 🍏 🌰
GET /api/v0/diag/cmds/clear 🍏 🌰
GET /api/v0/diag/cmds/set-time 🍏 🌰
arg= 🍏 🌰
GET /api/v0/net 🍏 🌰
vis 🍏 🌰
GET /api/v0/sys 🍏 🌰

Core

See interface-ipfs-core.


DHT

Note: This is blocked by core implementation of DHT itself. Follow https://github.com/ipfs/js-ipfs/pull/856

CLI

Command Go Impl JS Impl
ipfs dht findpeer 🍏 🍅
peer ID 🍏 🍅
verbose= 🍏 🍅
ipfs dht findprovs 🍏 🍅
key 🍏 🍅
verbose= 🍏 🍅
num-providers= 🍏 🍅
ipfs dht get 🍏 🍅
key 🍏 🍅
verbose= 🍏 🍅
ipfs dht provide 🍏 🍅
key 🍏 🍅
verbose= 🍏 🍅
recursive= 🍏 🍅
ipfs dht put 🍏 🍅
key 🍏 🍅
value 🍏 🍅
verbose= 🍏 🍅
ipfs dht query 🍏 🍅
peer ID 🍏 🍅
verbose= 🍏 🍅

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/dht/findpeer 🍏 🍅
arg= 🍏 🍅
verbose= 🍏 🍅
GET /api/v0/dht/findprovs 🍏 🍅
arg= 🍏 🍅
verbose= 🍏 🍅
num-providers= 🍏 🍅
GET /api/v0/dht/get 🍏 🍅
arg= 🍏 🍅
verbose= 🍏 🍅
GET /api/v0/dht/provide 🍏 🍅
arg= 🍏 🍅
verbose= 🍏 🍅
recursive= 🍏 🍅
GET /api/v0/dht/put 🍏 🍅
arg1= 🍏 🍅
arg2= 🍏 🍅
verbose= 🍏 🍅
GET /api/v0/dht/query 🍏 🍅
arg= 🍏 🍅
verbose= 🍏 🍅

Core

See interface-ipfs-core.


Files

CLI

Command Go Impl JS Impl
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 🍏 🍏
arg 🍏 🍏
ipfs ls 🍏 🍋
arg 🍏 🍋
headers 🍏 🍋
resolve-type 🍏 🍋
ipfs file ls 🍏 🌰
path 🍏 🌰
ipfs files cp 🍏 🍅
src 🍏 🍅
dst 🍏 🍅
flush 🍏 🍅
ipfs files flush 🍏 🍅
path 🍏 🍅
ipfs files ls 🍏 🍅
path 🍏 🍅
level 🍏 🍅
flush 🍏 🍅
ipfs files mkdir 🍏 🍅
path 🍏 🍅
parents 🍏 🍅
flush 🍏 🍅
ipfs files mv 🍏 🍅
src 🍏 🍅
dst 🍏 🍅
flush 🍏 🍅
ipfs files read 🍏 🍅
path 🍏 🍅
offset 🍏 🍅
count 🍏 🍅
flush 🍏 🍅
ipfs files rm 🍏 🍅
path 🍏 🍅
recursive 🍏 🍅
flush 🍏 🍅
ipfs files stat 🍏 🍅
path 🍏 🍅
flush 🍏 🍅
ipfs files write 🍏 🍅
path 🍏 🍅
data 🍏 🍅
offset 🍏 🍅
create 🍏 🍅
truncate 🍏 🍅
count 🍏 🍅
flush 🍏 🍅
ipfs get 🍏 🍏
path 🍏 🍏
archive 🍏 🍅
compress 🍏 🍅
compression-level 🍏 🍅

HTTP

Endpoint Go Impl JS Impl
POST /api/v0/add 🍏 🍋
arg= 🍏 🍏
recursive= 🍏 🍏
quiet= 🍏 🍅
quieter= 🍏 🍅
silent= 🍏 🍅
progress= 🍏 🍏
trickle= 🍏 🍏
only-hash= 🍏 🍏
wrap-with-directory 🍏 🍏
hidden 🍏 🍅
chunker 🍏 🍅
pin 🍏 🍋
raw-leaves 🍏 🍅
nocopy 🍏 🍅
fscache 🍏 🍅
cid-version 🍏 🍅
hash 🍏 🍅
GET /api/v0/cat 🍏 🍏
arg= 🍏 🍏
GET /api/v0/ls 🍏 🍋
arg= 🍏 🍋
headers= 🍏 🍋
resolve-type= 🍏 🍋
GET /api/v0/file/ls 🍏 🌰
arg= 🍏 🌰
GET /api/v0/files/cp 🍏 🍅
arg= 🍏 🍅
arg2= 🍏 🍅
flush=,f= 🍏 🍅
GET /api/v0/files/flush 🍏 🍅
arg= 🍏 🍅
GET /api/v0/files/ls 🍏 🍅
arg= 🍏 🍅
l= 🍏 🍅
flush=,f= 🍏 🍅
GET /api/v0/files/mkdir 🍏 🍅
arg= 🍏 🍅
parents=,p= 🍏 🍅
flush=,f= 🍏 🍅
GET /api/v0/files/mv 🍏 🍅
arg= 🍏 🍅
arg2= 🍏 🍅
flush=,f= 🍏 🍅
GET /api/v0/files/read 🍏 🍅
arg= 🍏 🍅
offset=,o= 🍏 🍅
count=,n= 🍏 🍅
flush=,f= 🍏 🍅
POST /api/v0/files/rm 🍏 🍅
arg= 🍏 🍅
recursive=,r= 🍏 🍅
flush=,f= 🍏 🍅
GET /api/v0/files/stat 🍏 🍅
arg= 🍏 🍅
flush=,f= 🍏 🍅
POST /api/v0/files/write 🍏 🍅
arg= 🍏 🍅
arg2= 🍏 🍅
offset=,o= 🍏 🍅
create=,e= 🍏 🍅
truncate=,t= 🍏 🍅
count=,n= 🍏 🍅
flush=,f= 🍏 🍅
POST /api/v0/get 🍏 🍏
arg= 🍏 🍏
archive= 🍏 🍅
compress= 🍏 🍅
compression-level=-1 🍏 🍅
compression-level=0 🍏 🍅
compression-level=1 🍏 🍅
compression-level=2 🍏 🍅
compression-level=3 🍏 🍅
compression-level=4 🍏 🍅
compression-level=5 🍏 🍅
compression-level=6 🍏 🍅
compression-level=7 🍏 🍅
compression-level=8 🍏 🍅
compression-level=9 🍏 🍅

Core

See interface-ipfs-core.


File Store (IPFS Pack)

Note: Implementation in js-ipfs is not planned for now.

CLI

HTTP

Core

See interface-ipfs-core.


Key Management

CLI

Command Go Impl JS Impl
ipfs key gen 🍏 🌰
name 🍏 🌰
type= 🍏 🌰
size= 🍏 🌰
ipfs key list 🍏 🌰
l= 🍏 🌰
ipfs key rename 🍏 🌰
name 🍏 🌰
newName 🍏 🌰
force= 🍏 🌰
ipfs key rm 🍏 🌰
name 🍏 🌰
l= 🍏 🌰

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/key/gen 🍏 🌰
arg= 🍏 🌰
type= 🍏 🌰
size= 🍏 🌰
GET /api/v0/key/list 🍏 🌰
l= 🍏 🌰
GET /api/v0/key/rename 🍏 🌰
arg= 🍏 🌰
arg= 🍏 🌰
force= 🍏 🌰
GET /api/v0/key/rm 🍏 🌰
arg= 🍏 🌰
l= 🍏 🌰

Core

See interface-ipfs-core.


Miscellaneous

CLI

Command Go Impl JS Impl
ipfs ping 🍏 🍋
peer ID 🍏 🍅
count 🍏 🍅
ipfs update 🌰 🌰
ipfs version 🍏 🍏
ipfs commands 🍏 🍏
ipfs id 🍏 🍏
peerid 🍏 🍅
aver 🍏 🍅
pver 🍏 🍅
pubkey 🍏 🍅
addrs 🍏 🍅
ipfs mount 🍏 🌰
ipfs-path= 🍏 🌰
ipns-path= 🍏 🌰
ipfs mount 🍏 🌰

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/ping 🍏 🍋
arg= 🍏 🍅
count= 🍏 🍅
GET /api/v0/update 🌰 🌰
GET /api/v0/version 🍏 🍏
GET /api/v0/commands 🍏 🍏
POST /api/v0/id 🍏 🍏
arg= 🍏 🍏
GET /api/v0/mount 🍏 🌰
ipfs-path= 🍏 🌰
ipns-path= 🍏 🌰
GET /api/v0/mount 🍏 🌰

Core

See interface-ipfs-core.


Naming

Note: Implementation in js-ipfs is blocked until DHT is finished.

CLI

Command Go Impl JS Impl
ipfs name publish 🍏 🍅
ipfs-path 🍏 🍅
resolve= 🍏 🍅
lifetime= 🍏 🍅
ttl= 🍏 🍅
key= 🍏 🍅
ipfs name resolve 🍏 🍅
name 🍏 🍅
recursive= 🍏 🍅
nocache= 🍏 🍅
ipfs resolve 🍏 🍅
name 🍏 🍅
recursive= 🍏 🍅
ipfs dns 🍏 🍅
domain 🍏 🍅
recursive= 🍏 🍅

HTTP

Endpoint Go Impl JS Impl
POST /api/v0/name/publish 🍏 🍅
arg= 🍏 🍅
resolve= 🍏 🍅
lifetime= 🍏 🍅
ttl= 🍏 🍅
key= 🍏 🍅
GET /api/v0/name/resolve 🍏 🍅
arg= 🍏 🍅
recursive= 🍏 🍅
nocache= 🍏 🍅
GET /api/v0/resolve 🍏 🍅
arg= 🍏 🍅
recursive= 🍏 🍅
GET /api/v0/dns 🍏 🍅
arg= 🍏 🍅
recursive= 🍏 🍅

Core

See interface-ipfs-core.


Object ipfs object

CLI

Endpoint Go Impl JS Impl
ipfs object data 🍏 🍏
key 🍏 🍏
ipfs object diff 🍏 🍅
key1 🍏 🍅
key2 🍏 🍅
ipfs object/get 🍏 🍏
key 🍏 🍏
encoding 🍏 🍏
GET /api/v0/object/links 🍏 🍏
key 🍏 🍏
GET /api/v0/object/new 🍏 🍏
template 🍏 🍏
GET /api/v0/object/patch/append-data 🍏 🍏
root 🍏 🍏
data 🍏 🍏
POST /api/v0/object/patch/add-link 🍏 🍏
root 🍏 🍏
name 🍏 🍏
ref 🍏 🍋
create 🍏 🍅
POST /api/v0/object/patch/rm-link 🍏 🍏
root 🍏 🍏
link 🍏 🍏
POST /api/v0/object/patch/set-data 🍏 🍏
root 🍏 🍏
data 🍏 🍏
GET /api/v0/object/put 🍏 🍏
data 🍏 🍏
inputenc 🍏 🍏
datafieldenc 🍏 🍅
pin 🍏 🍅
GET /api/v0/object/stat 🍏 🍏
root 🍏 🍏

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/object/data 🍏 🍏
arg= 🍏 🍏
GET /api/v0/object/diff 🍏 🍅
arg1= 🍏 🍅
arg2= 🍏 🍅
POST /api/v0/object/get 🍏 🍏
arg= 🍏 🍏
encoding=json,enc=json 🍏 🍏
encoding=protobuf,enc=protobuf 🍏 🍏
encoding=xml,enc=xml 🍏 🍏
GET /api/v0/object/links 🍏 🍏
arg= 🍏 🍏
GET /api/v0/object/new 🍏 🍏
arg=unixfs-dir 🍏 🍏
GET /api/v0/object/patch/append-data 🍏 🍏
arg1= 🍏 🍏
arg2= 🍏 🍏
POST /api/v0/object/patch/add-link 🍏 🍏
arg1= 🍏 🍏
arg2= 🍏 🍏
arg3= 🍏 🍏
create= 🍏 🍏
POST /api/v0/object/patch/rm-link 🍏 🍏
arg1= 🍏 🍏
arg2= 🍏 🍏
POST /api/v0/object/patch/set-data 🍏 🍏
arg1= 🍏 🍏
arg2= 🍏 🍏
GET /api/v0/object/put 🍏 🍏
arg= 🍏 🍏
inputenc 🍏 🍏
GET /api/v0/object/stat 🍏 🍏
arg= 🍏 🍏

Core

See interface-ipfs-core.


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 interface-ipfs-core.


Pining

CLI

Command Go Impl JS Impl
ipfs pin add 🍏 🍋
hash 🍏 🍋
recursive 🍏 🍋
progress 🍏 🍅
ipfs pin ls 🍏 🍋
type 🍏 🍋
quiet 🍏 🍋
ipfs pin rm 🍏 🍋
hash 🍏 🍋
recursive 🍏 🍋
ipfs pin update 🍏 🍅
hash 🍏 🍅
unpin 🍏 🍅
ipfs pin verify 🍏 🍅
verbose 🍏 🍅
ipfs refs 🍏 🍅
hash 🍏 🍅
format 🍏 🍅
edges 🍏 🍅
unique 🍏 🍅
recursive 🍏 🍅
ipfs refs local 🍏 🍅

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/pin/add 🍏 🍋
arg= 🍏 🍋
recursive= 🍏 🍋
POST /api/v0/pin/ls 🍏 🍋
type= 🍏 🍅
quiet= 🍏 🍅
GET /api/v0/pin/rm 🍏 🍅
arg= 🍏 🍅
recursive= 🍏 🍅
GET /api/v0/pin/update 🍏 🍅
arg= 🍏 🍅
unpin= 🍏 🍅
GET /api/v0/pin/verify 🍏 🍅
verbose= 🍏 🍅
GET /api/v0/refs 🍏 🍅
arg= 🍏 🍅
format= 🍏 🍅
edges= 🍏 🍅
unique= 🍏 🍅
recursive= 🍏 🍅
GET /api/v0//refs/local 🍏 🍅

Core

See interface-ipfs-core.


PubSub

CLI

Command Go Impl JS Impl
ipfs pubsub ls 🍏 🍏
ipfs pubsub peers 🍏 🍏
topic 🍏 🍏
ipfs pubsub pub 🍏 🍏
topic 🍏 🍏
data 🍏 🍏
ipfs pubsub sub 🍏 🍏
topic 🍏 🍏
discover 🍏 🍅

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/pubsub/ls 🍏 🍏
GET /api/v0/pubsub/peers 🍏 🍏
arg= 🍏 🍏
GET /api/v0/pubsub/pub 🍏 🍏
arg= 🍏 🍏
arg= 🍏 🍏
GET /api/v0/pubsub/sub 🍏 🍏
arg= 🍏 🍏
discover= 🍏 🍏

Core

See interface-ipfs-core.


Repo

CLI

Command Go Impl JS Impl
ipfs repo fsck 🍏 🌰
ipfs repo gc 🍏 🍅
ipfs repo stat 🍏 🍅
ipfs repo verify 🍏 🌰
ipfs repo version 🍏 🍏

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/repo/fsck 🍏 🌰
GET /api/v0/repo/gc 🍏 🍅
GET /api/v0/repo/stat 🍏 🍅
GET /api/v0/repo/verify 🍏 🌰
GET /api/v0/repo/version 🍏 🍏

Core

See interface-ipfs-core.


Swarm

CLI

Command Go Impl JS Impl
ipfs swarm addrs 🍏 🍏
ipfs swarm addrs listen 🍏 🍅
ipfs swarm addrs local 🍏 🍏
id= 🍏 🍅
ipfs swarm connect 🍏 🍏
arg= 🍏 🍏
ipfs swarm disconnect 🍏 🍏
arg= 🍏 🍏
ipfs swarm filters 🍏 🍅
ipfs swarm filters add 🍏 🍅
arg= 🍏 🍅
ipfs swarm filters rm 🍏 🍅
arg= 🍏 🍅
ipfs swarm peers 🍏 🍏
verbose= 🍏 🍅
latency= 🍏 🍅
streams= 🍏 🍅

HTTP

Endpoint Go Impl JS Impl
GET /api/v0/swarm/addrs 🍏 🍏
GET /api/v0/swarm/addrs/listen 🍏 🍅
GET /api/v0/swarm/addrs/local 🍏 🍏
id= 🍏 🍅
GET /api/v0/swarm/connect 🍏 🍏
arg= 🍏 🍏
GET /api/v0/swarm/disconnect 🍏 🍏
arg= 🍏 🍏
GET /api/v0/swarm/filters 🍏 🍅
GET /api/v0/swarm/filters/add 🍏 🍅
arg= 🍏 🍅
GET /api/v0/swarm/filters/rm 🍏 🍅
arg= 🍏 🍅
GET /api/v0/swarm/peers 🍏 🍏
verbose= 🍏 🍅
latency= 🍏 🍅
streams= 🍏 🍅

Core

See interface-ipfs-core.


You can’t perform that action at this time.