Skip to content

Commit

Permalink
docs: Add some docs on plugins
Browse files Browse the repository at this point in the history
License: MIT
Signed-off-by: Łukasz Magiera <[email protected]>
  • Loading branch information
magik6k committed Sep 21, 2017
1 parent 2b12a33 commit cd5d027
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ plugin](https://github.com/ipfs/go-ipld-eth) that lets ipfs ingest and operate
on all ethereum blockchain data. Soon to come are plugins for the bitcoin and
zcash data formats. In the future, we will be adding plugins for other things
like datastore backends and specialized libp2p network transports.
You can read more on this topic in [Plugin docs](docs/plugins.md)

In order to simplify its integration with fs-repo-migrations, we've switched
the ipfs/go-ipfs docker image from a musl base to a glibc base. For most users
Expand Down
13 changes: 13 additions & 0 deletions docs/experimental-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -282,3 +282,16 @@ Peers can see their (unspecific) relay address in the output of
dialing.
- [ ] Dialing priorities for relay addresses; arguably, relay addresses should
have lower priority than direct dials.

## Plugins

Plugins allow to add functionality without the need to recompile the daemon.

### Basic Usage:

See [Plugin docs](./plugins.md)

### Road to being a real feature

- [ ] Better support for platforms other than Linux
- [ ] More plugins and plugin types
49 changes: 49 additions & 0 deletions docs/plugins.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Plugins

Since 0.4.11 go-ipfs has an experimental plugin system for various added
functionality.

When IPFS node is created, it will load plugins from `$IPFS_PATH/plugins`
directory (by default `~/.ipfs/plugins`).

### Plugin types

#### IPLD
IPLD plugins add support for additional formats to `ipfs dag` and other IPLD
related commands.

### Supported plugins

| Name | Type |
|------|------|
| git | IPLD |

#### Installation

##### Linux

1. Build included plugins:
```bash
go-ipfs$ make build_plugins
go-ipfs$ ls plugin/plugins/*.so
```

3. Copy desired plugins to `$IPFS_PATH/plugins`
```bash
go-ipfs$ mkdir -p ~/.ipfs/plugins/
go-ipfs$ cp plugin/plugins/git.so ~/.ipfs/plugins/
go-ipfs$ chmod +x ~/.ipfs/plugins/git.so # ensure plugin is executable
```

4. Restart daemon if it is running

##### Other

Go currently only supports plugins on Linux, for other platforms you will need
to compile them into IPFS binary.

1. Uncomment plugin entries in `plugin/loader/preload_list`
2. Build ipfs
```bash
go-ipfs$ make build
```

0 comments on commit cd5d027

Please sign in to comment.