ipfs / go-ipfs-api

The go interface to ipfs's HTTP API
MIT License
455 stars 178 forks source link

⚠️ This package is no longer being maintained ⚠️

Please use kubo/client/rpc instead. In rare case the new library does not offer a feature this one does, fill issue in Kubo, or better, submit a PR that adds it to kubo/client/rpc.

For more details about the decision, see https://github.com/ipfs/kubo/issues/9124.

go-ipfs-api

standard-readme compliant GoDoc Build Status

The go interface to ipfs's HTTP API

Install

go install github.com/ipfs/go-ipfs-api@latest

This will download the source into $GOPATH/src/github.com/ipfs/go-ipfs-api.

Usage

See the godocs for details on available methods. This should match the specs at ipfs/specs (Core API); however, there are still some methods which are not accounted for. If you would like to add any of them, see the contribute section below. See also the HTTP API.

Example

Add a file with the contents "hello world!":

package main

import (
    "fmt"
    "strings"
        "os"

        shell "github.com/ipfs/go-ipfs-api"
)

func main() {
    // Where your local node is running on localhost:5001
    sh := shell.NewShell("localhost:5001")
    cid, err := sh.Add(strings.NewReader("hello world!"))
    if err != nil {
        fmt.Fprintf(os.Stderr, "error: %s", err)
        os.Exit(1)
    }
    fmt.Printf("added %s", cid)
}

For a more complete example, please see: https://github.com/ipfs/go-ipfs-api/blob/master/tests/main.go

Contribute

Contributions are welcome! Please check out the issues.

Want to hack on IPFS?

License

MIT