Browse Source

docs: Create Implementation Status Tables

Implementation Status Tables
David Dias 8 years ago
parent
commit
48a81799cf
1 changed files with 788 additions and 0 deletions
  1. 788 0
      IMPLEMENTATION_STATUS.md

+ 788 - 0
IMPLEMENTATION_STATUS.md

@@ -0,0 +1,788 @@
+# IPFS Implementation Status
+
+> Legend: :green_apple: Done   :lemon: In Progress   :tomato: Missing   :chestnut: Not planned
+
+# Table of Contents
+
+# API
+
+## Bitswap
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs ledger`**                            | :green_apple: | :tomato:      |
+|     `peer`                                   | :green_apple: | :tomato:      |
+| **`ipfs reprovide`**                         | :green_apple: | :tomato:      |
+| **`ipfs bitswap stat`**                      | :green_apple: | :green_apple: |
+| **`ipfs bitswap unwant`**                    | :green_apple: | :tomato:      |
+|     `key`                                    | :green_apple: | :tomato:      |
+| **`ipfs bitswap wantlist`**                  | :green_apple: | :lemon:       |
+|     `peer`                                   | :green_apple: | :tomato:      |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/bitswap/ledger`**             | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/bitswap/reprovide`**          | :green_apple: | :tomato:      |
+| **`GET /api/v0/bitswap/stat`**               | :green_apple: | :green_apple: |
+| **`GET /api/v0/bitswap/unwant`**             | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/bitswap/wantlist`**           | :green_apple: | :lemon:       |
+|     `peer=`                                  | :green_apple: | :tomato:      |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Block `ipfs block`
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs block get`**                         | :green_apple: | :green_apple: |
+|     `key`                                    | :green_apple: | :green_apple: |
+| **`ipfs block put`**                         | :green_apple: | :green_apple: |
+|     `data`                                   | :green_apple: | :green_apple: |
+|     `format`                                 | :green_apple: | :green_apple: |
+|     `mhtype`                                 | :green_apple: | :green_apple: |
+|     `mhlen`                                  | :green_apple: | :green_apple: |
+| **`ipfs block rm`**                          | :green_apple: | :lemon:       |
+|     `hash`                                   | :green_apple: | :lemon:       |
+|     `force`                                  | :green_apple: | :lemon:       |
+| **`ipfs block stat`**                        | :green_apple: | :green_apple: |
+|     `key`                                    | :green_apple: | :green_apple: |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/block/get`**                  | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`POST /api/v0/block/put`**                 | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `format=`                                | :green_apple: | :green_apple: |
+|     `mhtype=`                                | :green_apple: | :green_apple: |
+|     `mhlen=`                                 | :green_apple: | :green_apple: |
+| **`GET /api/v0/block/rm`**                   | :green_apple: | :lemon:       |
+|     `arg=`                                   | :green_apple: | :lemon:       |
+|     `force=`                                 | :green_apple: | :lemon:       |
+| **`GET /api/v0/block/stat`**                 | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Bootstrap
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs bootstrap add`**                     | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `default=`                               | :green_apple: | :green_apple: |
+| **`ipfs bootstrap list`**                    | :green_apple: | :green_apple: |
+| **`ipfs bootstrap rm`**                      | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `all=`                                   | :green_apple: | :green_apple: |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/bootstrap/add`**              | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `default=`                               | :green_apple: | :green_apple: |
+| **`GET /api/v0/bootstrap/add/default`**      | :green_apple: | :tomato:      |
+| **`GET /api/v0/bootstrap/list`**             | :green_apple: | :green_apple: |
+| **`GET /api/v0/bootstrap/rm`**               | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `all=`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/bootstrap/rm/all`**           | :green_apple: | :tomato:      |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Config
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs config edit`**                       | :green_apple: | :chestnut:    |
+| **`ipfs config`**                            | :green_apple: | :chestnut:    |
+|     `key`                                    | :green_apple: | :green_apple: |
+|     `value`                                  | :green_apple: | :green_apple: |
+|     `bool=`                                  | :green_apple: | :green_apple: |
+|     `json=`                                  | :green_apple: | :green_apple: |
+| **`ipfs config replace`**                    | :green_apple: | :green_apple: |
+|     `file`                                   | :green_apple: | :green_apple: |
+| **`ipfs config show`**                       | :green_apple: | :green_apple: |
+| **`ipfs log level`**                         | :green_apple: | :chestnut:    |
+|     `subsystem`                              | :green_apple: | :chestnut:    |
+|     `level`                                  | :green_apple: | :chestnut:    |
+| **`ipfs log ls`**                            | :green_apple: | :chestnut:    |
+| **`ipfs log tail`**                          | :green_apple: | :chestnut:    |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/config/edit`**                | :green_apple: | :chestnut:    |
+| **`POST /api/v0/config`**                    | :green_apple: | :chestnut:    |
+|     `arg1=`                                  | :green_apple: | :green_apple: |
+|     `arg2=`                                  | :green_apple: | :green_apple: |
+|     `bool=`                                  | :green_apple: | :green_apple: |
+|     `json=`                                  | :green_apple: | :green_apple: |
+| **`POST /api/v0/config/replace`**            | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/config/show`**                | :green_apple: | :green_apple: |
+| **`POST /api/v0/log/level`**                 | :green_apple: | :chestnut:    |
+|     `arg1=`                                  | :green_apple: | :chestnut:    |
+|     `arg2=`                                  | :green_apple: | :chestnut:    |
+| **`GET /api/v0/log/ls`**                     | :green_apple: | :chestnut:    |
+| **`GET /api/v0/log/tail`**                   | :green_apple: | :chestnut:    |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## DAG
+
+> **Blocked until the following are resolved:**
+- https://github.com/ipfs/js-ipfs-api/pull/534
+- https://github.com/ipfs/go-ipfs/issues/3771#issue-213068794
+
+#### CLI
+
+#### HTTP
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Stats and Diagnostics
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs stats bitswap`**                     | :green_apple: | :tomato:      |
+| **`ipfs stats bw`**                          | :green_apple: | :tomato:      |
+|     `peer`                                   | :green_apple: | :tomato:      |
+|     `proto`                                  | :green_apple: | :tomato:      |
+|     `poll`                                   | :green_apple: | :tomato:      |
+|     `interval `                              | :green_apple: | :tomato:      |
+| **`ipfs stats repo`**                        | :green_apple: | :tomato:      |
+| **`ipfs diag cmds`**                         | :green_apple: | :chestnut:    |
+| **`ipfs diag cmds clear`**                   | :green_apple: | :chestnut:    |
+| **`ipfs diag cmds set-time`**                | :green_apple: | :chestnut:    |
+|     `time`                                   | :green_apple: | :chestnut:    |
+| **`ipfs diag sys`**                          | :green_apple: | :chestnut:    |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/stats/bitswap`**              | :green_apple: | :tomato:      |
+| **`POST /api/v0/stats/bw`**                  | :green_apple: | :tomato:      |
+|     `peer=`                                  | :green_apple: | :tomato:      |
+|     `proto=`                                 | :green_apple: | :tomato:      |
+|     `poll=`                                  | :green_apple: | :tomato:      |
+|     `interval=`                              | :green_apple: | :tomato:      |
+| **`GET /api/v0/stats/repo`**                 | :green_apple: | :tomato:      |
+| **`GET /api/v0/diag/cmds`**                  | :green_apple: | :chestnut:    |
+| **`GET /api/v0/diag/cmds/clear`**            | :green_apple: | :chestnut:    |
+| **`GET /api/v0/diag/cmds/set-time`**         | :green_apple: | :chestnut:    |
+|     `arg=`                                   | :green_apple: | :chestnut:    |
+| **`GET /api/v0/net`**                        | :green_apple: | :chestnut:    |
+|     `vis`                                    | :green_apple: | :chestnut:    |
+| **`GET /api/v0/sys`**                        | :green_apple: | :chestnut:    |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## DHT
+
+> **Note:** This is blocked by core implementation of DHT itself. Follow https://github.com/ipfs/js-ipfs/pull/856
+
+#### CLI
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/dht/findpeer`**               | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`POST /api/v0/dht/findprovs`**             | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/dht/get`**                    | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/dht/put`**                    | :green_apple: | :tomato:      |
+|     `arg1=`                                  | :green_apple: | :tomato:      |
+|     `arg2=`                                  | :green_apple: | :tomato:      |
+| **`GET /api/v0/dht/query`**                  | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Files
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs add`**                               | :green_apple: | :lemon:       |
+|     `file`                                   | :green_apple: | :green_apple: |
+|     `recursive`                              | :green_apple: | :green_apple: |
+|     `quiet`                                  | :green_apple: | :tomato:      |
+|     `quieter`                                | :green_apple: | :tomato:      |
+|     `silent`                                 | :green_apple: | :tomato:      |
+|     `progress`                               | :green_apple: | :tomato:      |
+|     `trickle`                                | :green_apple: | :green_apple: |
+|     `only-hash`                              | :green_apple: | :tomato:      |
+|     `wrap-with-directory`                    | :green_apple: | :green_apple: |
+|     `hidden`                                 | :green_apple: | :tomato:      |
+|     `chunker`                                | :green_apple: | :tomato:      |
+|     `pin`                                    | :green_apple: | :tomato:      |
+|     `raw-leaves`                             | :green_apple: | :tomato:      |
+|     `nocopy`                                 | :green_apple: | :tomato:      |
+|     `fscache`                                | :green_apple: | :tomato:      |
+|     `cid-version`                            | :green_apple: | :tomato:      |
+|     `hash`                                   | :green_apple: | :tomato:      |
+| **`ipfs cat`**                               | :green_apple: | :green_apple: |
+|     `arg`                                    | :green_apple: | :green_apple: |
+| **`ipfs ls`**                                | :green_apple: | :lemon:       |
+|     `arg`                                    | :green_apple: | :lemon:       |
+|     `headers`                                | :green_apple: | :lemon:       |
+|     `resolve-type`                           | :green_apple: | :lemon:       |
+| **`ipfs file ls`**                           | :green_apple: | :chestnut:    |
+|     `path`                                   | :green_apple: | :chestnut:    |
+| **`ipfs files cp`**                          | :green_apple: | :tomato:      |
+|     `src`                                    | :green_apple: | :tomato:      |
+|     `dst`                                    | :green_apple: | :tomato:      |
+|     `flush`                                  | :green_apple: | :tomato:      |
+| **`ipfs files flush`**                       | :green_apple: | :tomato:      |
+|     `path`                                   | :green_apple: | :tomato:      |
+| **`ipfs files ls`**                          | :green_apple: | :tomato:      |
+|     `path`                                   | :green_apple: | :tomato:      |
+|     `level`                                  | :green_apple: | :tomato:      |
+|     `flush`                                  | :green_apple: | :tomato:      |
+| **`ipfs files mkdir`**                       | :green_apple: | :tomato:      |
+|     `path`                                   | :green_apple: | :tomato:      |
+|     `parents`                                | :green_apple: | :tomato:      |
+|     `flush`                                  | :green_apple: | :tomato:      |
+| **`ipfs files mv`**                          | :green_apple: | :tomato:      |
+|     `src`                                    | :green_apple: | :tomato:      |
+|     `dst`                                    | :green_apple: | :tomato:      |
+|     `flush`                                  | :green_apple: | :tomato:      |
+| **`ipfs files read`**                        | :green_apple: | :tomato:      |
+|     `path`                                   | :green_apple: | :tomato:      |
+|     `offset`                                 | :green_apple: | :tomato:      |
+|     `count`                                  | :green_apple: | :tomato:      |
+|     `flush`                                  | :green_apple: | :tomato:      |
+| **`ipfs files rm`**                          | :green_apple: | :tomato:      |
+|     `path`                                   | :green_apple: | :tomato:      |
+|     `recursive`                              | :green_apple: | :tomato:      |
+|     `flush`                                  | :green_apple: | :tomato:      |
+| **`ipfs files stat`**                        | :green_apple: | :tomato:      |
+|     `path`                                   | :green_apple: | :tomato:      |
+|     `flush`                                  | :green_apple: | :tomato:      |
+| **`ipfs files write`**                       | :green_apple: | :tomato:      |
+|     `path`                                   | :green_apple: | :tomato:      |
+|     `data`                                   | :green_apple: | :tomato:      |
+|     `offset`                                 | :green_apple: | :tomato:      |
+|     `create`                                 | :green_apple: | :tomato:      |
+|     `truncate`                               | :green_apple: | :tomato:      |
+|     `count`                                  | :green_apple: | :tomato:      |
+|     `flush`                                  | :green_apple: | :tomato:      |
+| **`ipfs get`**                               | :green_apple: | :green_apple: |
+|     `path`                                   | :green_apple: | :green_apple: |
+|     `archive`                                | :green_apple: | :tomato:      |
+|     `compress`                               | :green_apple: | :tomato:      |
+|     `compression-level`                      | :green_apple: | :tomato:      |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`POST /api/v0/add`**                       | :green_apple: | :lemon:       |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `recursive=`                             | :green_apple: | :green_apple: |
+|     `quiet=`                                 | :green_apple: | :tomato:      |
+|     `quieter=`                               | :green_apple: | :tomato:      |
+|     `silent=`                                | :green_apple: | :tomato:      |
+|     `progress=`                              | :green_apple: | :tomato:      |
+|     `trickle=`                               | :green_apple: | :green_apple: |
+|     `only-hash=`                             | :green_apple: | :tomato:      |
+|     `wrap-with-directory`                    | :green_apple: | :green_apple: |
+|     `hidden`                                 | :green_apple: | :tomato:      |
+|     `chunker`                                | :green_apple: | :tomato:      |
+|     `pin`                                    | :green_apple: | :tomato:      |
+|     `raw-leaves`                             | :green_apple: | :tomato:      |
+|     `nocopy`                                 | :green_apple: | :tomato:      |
+|     `fscache`                                | :green_apple: | :tomato:      |
+|     `cid-version`                            | :green_apple: | :tomato:      |
+|     `hash`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/cat`**                        | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/ls`**                         | :green_apple: | :lemon:       |
+|     `arg=`                                   | :green_apple: | :lemon:       |
+|     `headers=`                               | :green_apple: | :lemon:       |
+|     `resolve-type=`                          | :green_apple: | :lemon:       |
+| **`GET /api/v0/file/ls`**                    | :green_apple: | :chestnut:    |
+|     `arg=`                                   | :green_apple: | :chestnut:    |
+| **`GET /api/v0/files/cp`**                   | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `arg2=`                                  | :green_apple: | :tomato:      |
+|     `flush=,f=`                              | :green_apple: | :tomato:      |
+| **`GET /api/v0/files/flush`**                | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/files/ls`**                   | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `l=`                                     | :green_apple: | :tomato:      |
+|     `flush=,f=`                              | :green_apple: | :tomato:      |
+| **`GET /api/v0/files/mkdir`**                | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `parents=,p=`                            | :green_apple: | :tomato:      |
+|     `flush=,f=`                              | :green_apple: | :tomato:      |
+| **`GET /api/v0/files/mv`**                   | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `arg2=`                                  | :green_apple: | :tomato:      |
+|     `flush=,f=`                              | :green_apple: | :tomato:      |
+| **`GET /api/v0/files/read`**                 | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `offset=,o=`                             | :green_apple: | :tomato:      |
+|     `count=,n=`                              | :green_apple: | :tomato:      |
+|     `flush=,f=`                              | :green_apple: | :tomato:      |
+| **`POST /api/v0/files/rm`**                  | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `recursive=,r=`                          | :green_apple: | :tomato:      |
+|     `flush=,f=`                              | :green_apple: | :tomato:      |
+| **`GET /api/v0/files/stat`**                 | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `flush=,f=`                              | :green_apple: | :tomato:      |
+| **`POST /api/v0/files/write`**               | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `arg2=`                                  | :green_apple: | :tomato:      |
+|     `offset=,o=`                             | :green_apple: | :tomato:      |
+|     `create=,e=`                             | :green_apple: | :tomato:      |
+|     `truncate=,t=`                           | :green_apple: | :tomato:      |
+|     `count=,n=`                              | :green_apple: | :tomato:      |
+|     `flush=,f=`                              | :green_apple: | :tomato:      |
+| **`POST /api/v0/get`**                       | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `archive=`                               | :green_apple: | :tomato:      |
+|     `compress=`                              | :green_apple: | :tomato:      |
+|     `compression-level=-1`                   | :green_apple: | :tomato:      |
+|     `compression-level=0`                    | :green_apple: | :tomato:      |
+|     `compression-level=1`                    | :green_apple: | :tomato:      |
+|     `compression-level=2`                    | :green_apple: | :tomato:      |
+|     `compression-level=3`                    | :green_apple: | :tomato:      |
+|     `compression-level=4`                    | :green_apple: | :tomato:      |
+|     `compression-level=5`                    | :green_apple: | :tomato:      |
+|     `compression-level=6`                    | :green_apple: | :tomato:      |
+|     `compression-level=7`                    | :green_apple: | :tomato:      |
+|     `compression-level=8`                    | :green_apple: | :tomato:      |
+|     `compression-level=9`                    | :green_apple: | :tomato:      |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## File Store (IPFS Pack)
+
+> **Note:** Implementation in js-ipfs is not planned for now.
+
+#### CLI
+
+#### HTTP
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Key Management
+
+> **Note:** Implementation in js-ipfs is not planned for now.
+
+#### CLI
+
+#### HTTP
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Miscellaneous
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs ping`**                              | :green_apple: | :lemon:       |
+|     `peer ID`                                | :green_apple: | :tomato:      |
+|     `count`                                  | :green_apple: | :tomato:      |
+| **`ipfs update`**                            | :chestnut:    | :chestnut:    |
+| **`ipfs version`**                           | :green_apple: | :green_apple: |
+| **`ipfs commands`**                          | :green_apple: | :green_apple: |
+| **`ipfs id`**                                | :green_apple: | :green_apple: |
+|     `peerid`                                 | :green_apple: | :tomato:      |
+|     `aver`                                   | :green_apple: | :tomato:      |
+|     `pver`                                   | :green_apple: | :tomato:      |
+|     `pubkey`                                 | :green_apple: | :tomato:      |
+|     `addrs`                                  | :green_apple: | :tomato:      |
+| **`ipfs mount`**                             | :green_apple: | :chesnut:     |
+|     `ipfs-path=`                             | :green_apple: | :chesnut:     |
+|     `ipns-path=`                             | :green_apple: | :chesnut:     |
+| **`ipfs mount`**                             | :green_apple: | :chesnut:     |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/ping`**                       | :green_apple: | :lemon:       |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `count=`                                 | :green_apple: | :tomato:      |
+| **`GET /api/v0/update`**                     | :chestnut:    | :chestnut:    |
+| **`GET /api/v0/version`**                    | :green_apple: | :green_apple: |
+| **`GET /api/v0/commands`**                   | :green_apple: | :green_apple: |
+| **`POST /api/v0/id`**                        | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/mount`**                      | :green_apple: | :chesnut:     |
+|     `ipfs-path=`                             | :green_apple: | :chesnut:     |
+|     `ipns-path=`                             | :green_apple: | :chesnut:     |
+| **`GET /api/v0/mount`**                      | :green_apple: | :chesnut:     |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Naming
+
+> **Note:** Implementation in js-ipfs is blocked until DHT is finished.
+
+#### CLI
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`POST /api/v0/name/publish`**              | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `resolve=`                               | :green_apple: | :tomato:      |
+|     `lifetime=`                              | :green_apple: | :tomato:      |
+|     `ttl=`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/name/resolve`**               | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+|     `nocache=`                               | :green_apple: | :tomato:      |
+| **`GET /api/v0/resolve`**                    | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+| **`GET /api/v0/dns`**                        | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Object `ipfs object`
+
+#### CLI
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs object data`**                       | :green_apple: | :green_apple: |
+|     `key`                                    | :green_apple: | :green_apple: |
+| **`ipfs object diff`**                       | :green_apple: | :tomato:      |
+|     `key1`                                   | :green_apple: | :tomato:      |
+|     `key2`                                   | :green_apple: | :tomato:      |
+| **`ipfs object/get`**                        | :green_apple: | :green_apple: |
+|     `key`                                    | :green_apple: | :green_apple: |
+|     `encoding`                               | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/links`**               | :green_apple: | :green_apple: |
+|     `key`                                    | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/new`**                 | :green_apple: | :green_apple: |
+|     `template`                               | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/patch/append-data`**   | :green_apple: | :green_apple: |
+|     `root`                                   | :green_apple: | :green_apple: |
+|     `data`                                   | :green_apple: | :green_apple: |
+| **`POST /api/v0/object/patch/add-link`**     | :green_apple: | :green_apple: |
+|     `root`                                   | :green_apple: | :green_apple: |
+|     `name`                                   | :green_apple: | :green_apple: |
+|     `ref`                                    | :green_apple: | :lemon:       |
+|     `create`                                 | :green_apple: | :tomato:      |
+| **`POST /api/v0/object/patch/rm-link`**      | :green_apple: | :green_apple: |
+|     `root`                                   | :green_apple: | :green_apple: |
+|     `link`                                   | :green_apple: | :green_apple: |
+| **`POST /api/v0/object/patch/set-data`**     | :green_apple: | :green_apple: |
+|     `root`                                   | :green_apple: | :green_apple: |
+|     `data`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/put`**                 | :green_apple: | :green_apple: |
+|     `data`                                   | :green_apple: | :green_apple: |
+|     `inputenc`                               | :green_apple: | :green_apple: |
+|     `datafieldenc`                           | :green_apple: | :tomato:      |
+|     `pin`                                    | :green_apple: | :tomato:      |
+| **`GET /api/v0/object/stat`**                | :green_apple: | :green_apple: |
+|     `root`                                   | :green_apple: | :green_apple: |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/object/data`**                | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/diff`**                | :green_apple: | :tomato:      |
+|     `arg1=`                                  | :green_apple: | :tomato:      |
+|     `arg2=`                                  | :green_apple: | :tomato:      |
+| **`POST /api/v0/object/get`**                | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `encoding=json,enc=json`                 | :green_apple: | :green_apple: |
+|     `encoding=protobuf,enc=protobuf`         | :green_apple: | :green_apple: |
+|     `encoding=xml,enc=xml`                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/links`**               | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/new`**                 | :green_apple: | :green_apple: |
+|     `arg=unixfs-dir`                         | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/patch/append-data`**   | :green_apple: | :green_apple: |
+|     `arg1=`                                  | :green_apple: | :green_apple: |
+|     `arg2=`                                  | :green_apple: | :green_apple: |
+| **`POST /api/v0/object/patch/add-link`**     | :green_apple: | :green_apple: |
+|     `arg1=`                                  | :green_apple: | :green_apple: |
+|     `arg2=`                                  | :green_apple: | :green_apple: |
+|     `arg3=`                                  | :green_apple: | :green_apple: |
+|     `create=`                                | :green_apple: | :green_apple: |
+| **`POST /api/v0/object/patch/rm-link`**      | :green_apple: | :green_apple: |
+|     `arg1=`                                  | :green_apple: | :green_apple: |
+|     `arg2=`                                  | :green_apple: | :green_apple: |
+| **`POST /api/v0/object/patch/set-data`**     | :green_apple: | :green_apple: |
+|     `arg1=`                                  | :green_apple: | :green_apple: |
+|     `arg2=`                                  | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/put`**                 | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+|     `inputenc`                               | :green_apple: | :green_apple: |
+| **`GET /api/v0/object/stat`**                | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/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](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Pining
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs pin add`**                           | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+| **`ipfs pin ls`**                            | :green_apple: | :tomato:      |
+|     `type=`                                  | :green_apple: | :tomato:      |
+|     `count=`                                 | :green_apple: | :tomato:      |
+|     `quiet=`                                 | :green_apple: | :tomato:      |
+| **`ipfs pin rm`**                            | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+| **`ipfs pin update`**                        | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `unpin=`                                 | :green_apple: | :tomato:      |
+| **`ipfs pin verify`**                        | :green_apple: | :tomato:      |
+|     `verbose=`                               | :green_apple: | :tomato:      |
+| **`ipfs refs`**                              | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `format=`                                | :green_apple: | :tomato:      |
+|     `edges=`                                 | :green_apple: | :tomato:      |
+|     `unique=`                                | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+| **`ipfs refs local`**                        | :green_apple: | :tomato:      |
+| **`ipfs refs`**                              | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `format=`                                | :green_apple: | :tomato:      |
+|     `edges=`                                 | :green_apple: | :tomato:      |
+|     `unique=`                                | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/pin/add`**                    | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+| **`POST /api/v0/pin/ls`**                    | :green_apple: | :tomato:      |
+|     `type=`                                  | :green_apple: | :tomato:      |
+|     `count=`                                 | :green_apple: | :tomato:      |
+|     `quiet=`                                 | :green_apple: | :tomato:      |
+| **`GET /api/v0/pin/rm`**                     | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+| **`GET /api/v0/pin/update`**                 | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `unpin=`                                 | :green_apple: | :tomato:      |
+| **`GET /api/v0/pin/verify`**                 | :green_apple: | :tomato:      |
+|     `verbose=`                               | :green_apple: | :tomato:      |
+| **`GET /api/v0/refs`**                       | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `format=`                                | :green_apple: | :tomato:      |
+|     `edges=`                                 | :green_apple: | :tomato:      |
+|     `unique=`                                | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+| **`GET /api/v0//refs/local`**                | :green_apple: | :tomato:      |
+| **`GET /api/v0/refs`**                       | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+|     `format=`                                | :green_apple: | :tomato:      |
+|     `edges=`                                 | :green_apple: | :tomato:      |
+|     `unique=`                                | :green_apple: | :tomato:      |
+|     `recursive=`                             | :green_apple: | :tomato:      |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## PubSub
+
+#### CLI
+
+#### HTTP
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Repo
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs repo fsck`**                         | :green_apple: | :chestnut:    |
+| **`ipfs repo gc`**                           | :green_apple: | :tomato:      |
+| **`ipfs repo stat`**                         | :green_apple: | :tomato:      |
+| **`ipfs repo verify`**                       | :green_apple: | :chestnut:    |
+| **`ipfs repo version`**                      | :green_apple: | :green_apple: |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/repo/fsck`**                  | :green_apple: | :chestnut:    |
+| **`GET /api/v0/repo/gc`**                    | :green_apple: | :tomato:      |
+| **`GET /api/v0/repo/stat`**                  | :green_apple: | :tomato:      |
+| **`GET /api/v0/repo/verify`**                | :green_apple: | :chestnut:    |
+| **`GET /api/v0/repo/version`**               | :green_apple: | :green_apple: |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------
+
+## Swarm
+
+#### CLI
+
+| Command                                      | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`ipfs swarm addrs`**                       | :green_apple: | :green_apple: |
+| **`ipfs swarm addrs listen`**                | :green_apple: | :tomato:      |
+| **`ipfs swarm addrs local`**                 | :green_apple: | :green_apple: |
+|     `id=`                                    | :green_apple: | :tomato:      |
+| **`ipfs swarm connect`**                     | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`ipfs swarm disconnect`**                  | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`ipfs swarm filters`**                     | :green_apple: | :tomato:      |
+| **`ipfs swarm filters add`**                 | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`ipfs swarm filters rm`**                  | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`ipfs swarm peers`**                       | :green_apple: | :green_apple: |
+|     `verbose=`                               | :green_apple: | :tomato:      |
+|     `latency=`                               | :green_apple: | :tomato:      |
+|     `streams=`                               | :green_apple: | :tomato:      |
+
+#### HTTP
+
+| Endpoint                                     | Go Impl       | JS Impl       |
+| -------------------------------------------- | :-----------: | :-----------: |
+| **`GET /api/v0/swarm/addrs`**                | :green_apple: | :green_apple: |
+| **`GET /api/v0/swarm/addrs/listen`**         | :green_apple: | :tomato:      |
+| **`GET /api/v0/swarm/addrs/local`**          | :green_apple: | :green_apple: |
+|     `id=`                                    | :green_apple: | :tomato:      |
+| **`GET /api/v0/swarm/connect`**              | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/swarm/disconnect`**           | :green_apple: | :green_apple: |
+|     `arg=`                                   | :green_apple: | :green_apple: |
+| **`GET /api/v0/swarm/filters`**              | :green_apple: | :tomato:      |
+| **`GET /api/v0/swarm/filters/add`**          | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/swarm/filters/rm`**           | :green_apple: | :tomato:      |
+|     `arg=`                                   | :green_apple: | :tomato:      |
+| **`GET /api/v0/swarm/peers`**                | :green_apple: | :green_apple: |
+|     `verbose=`                               | :green_apple: | :tomato:      |
+|     `latency=`                               | :green_apple: | :tomato:      |
+|     `streams=`                               | :green_apple: | :tomato:      |
+
+#### Core
+
+See [interface-ipfs-core](https://github.com/ipfs/interface-ipfs-core).
+
+--------------------------------------------------------------------------------