Documentation

Overview

    Package coreapi provides direct access to the core commands in IPFS. If you are embedding IPFS directly in your Go program, this package is the public interface you should use to read and write files or otherwise control IPFS.

    If you are running IPFS as a separate process, you should use `go-ipfs-api` to work with it via HTTP. As we finalize the interfaces here, `go-ipfs-api` will transparently adopt them so you can use the same code with either package.

    **NOTE: this package is experimental.** `go-ipfs` has mainly been developed as a standalone application and library-style use of this package is still new. Interfaces here aren't yet completely stable.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func NewCoreAPI

    func NewCoreAPI(n *core.IpfsNode, opts ...options.ApiOption) (coreiface.CoreAPI, error)

      NewCoreAPI creates new instance of IPFS CoreAPI backed by go-ipfs Node.

      Types

      type BlockAPI

      type BlockAPI CoreAPI

      func (*BlockAPI) Get

      func (api *BlockAPI) Get(ctx context.Context, p path.Path) (io.Reader, error)

      func (*BlockAPI) Put

      func (api *BlockAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.BlockPutOption) (coreiface.BlockStat, error)

      func (*BlockAPI) Rm

      func (api *BlockAPI) Rm(ctx context.Context, p path.Path, opts ...caopts.BlockRmOption) error

      func (*BlockAPI) Stat

      func (api *BlockAPI) Stat(ctx context.Context, p path.Path) (coreiface.BlockStat, error)

      type BlockStat

      type BlockStat struct {
      	// contains filtered or unexported fields
      }

      func (*BlockStat) Path

      func (bs *BlockStat) Path() path.Resolved

      func (*BlockStat) Size

      func (bs *BlockStat) Size() int

      type CoreAPI

      type CoreAPI struct {
      	// contains filtered or unexported fields
      }

      func (*CoreAPI) Block

      func (api *CoreAPI) Block() coreiface.BlockAPI

        Block returns the BlockAPI interface implementation backed by the go-ipfs node

        func (*CoreAPI) Dag

        func (api *CoreAPI) Dag() coreiface.APIDagService

          Dag returns the DagAPI interface implementation backed by the go-ipfs node

          func (*CoreAPI) Dht

          func (api *CoreAPI) Dht() coreiface.DhtAPI

            Dht returns the DhtAPI interface implementation backed by the go-ipfs node

            func (*CoreAPI) Key

            func (api *CoreAPI) Key() coreiface.KeyAPI

              Key returns the KeyAPI interface implementation backed by the go-ipfs node

              func (*CoreAPI) Name

              func (api *CoreAPI) Name() coreiface.NameAPI

                Name returns the NameAPI interface implementation backed by the go-ipfs node

                func (*CoreAPI) Object

                func (api *CoreAPI) Object() coreiface.ObjectAPI

                  Object returns the ObjectAPI interface implementation backed by the go-ipfs node

                  func (*CoreAPI) Pin

                  func (api *CoreAPI) Pin() coreiface.PinAPI

                    Pin returns the PinAPI interface implementation backed by the go-ipfs node

                    func (*CoreAPI) PubSub

                    func (api *CoreAPI) PubSub() coreiface.PubSubAPI

                      PubSub returns the PubSubAPI interface implementation backed by the go-ipfs node

                      func (*CoreAPI) ResolveNode

                      func (api *CoreAPI) ResolveNode(ctx context.Context, p path.Path) (ipld.Node, error)

                        ResolveNode resolves the path `p` using Unixfs resolver, gets and returns the resolved Node.

                        func (*CoreAPI) ResolvePath

                        func (api *CoreAPI) ResolvePath(ctx context.Context, p path.Path) (path.Resolved, error)

                          ResolvePath resolves the path `p` using Unixfs resolver, returns the resolved path.

                          func (*CoreAPI) Swarm

                          func (api *CoreAPI) Swarm() coreiface.SwarmAPI

                            Swarm returns the SwarmAPI interface implementation backed by the go-ipfs node

                            func (*CoreAPI) Unixfs

                            func (api *CoreAPI) Unixfs() coreiface.UnixfsAPI

                              Unixfs returns the UnixfsAPI interface implementation backed by the go-ipfs node

                              func (*CoreAPI) WithOptions

                              func (api *CoreAPI) WithOptions(opts ...options.ApiOption) (coreiface.CoreAPI, error)

                                WithOptions returns api with global options applied

                                type DhtAPI

                                type DhtAPI CoreAPI

                                func (*DhtAPI) FindPeer

                                func (api *DhtAPI) FindPeer(ctx context.Context, p peer.ID) (peer.AddrInfo, error)

                                func (*DhtAPI) FindProviders

                                func (api *DhtAPI) FindProviders(ctx context.Context, p path.Path, opts ...caopts.DhtFindProvidersOption) (<-chan peer.AddrInfo, error)

                                func (*DhtAPI) Provide

                                func (api *DhtAPI) Provide(ctx context.Context, path path.Path, opts ...caopts.DhtProvideOption) error

                                type KeyAPI

                                type KeyAPI CoreAPI

                                func (*KeyAPI) Generate

                                func (api *KeyAPI) Generate(ctx context.Context, name string, opts ...caopts.KeyGenerateOption) (coreiface.Key, error)

                                  Generate generates new key, stores it in the keystore under the specified name and returns a base58 encoded multihash of its public key.

                                  func (*KeyAPI) List

                                  func (api *KeyAPI) List(ctx context.Context) ([]coreiface.Key, error)

                                    List returns a list keys stored in keystore.

                                    func (*KeyAPI) Remove

                                    func (api *KeyAPI) Remove(ctx context.Context, name string) (coreiface.Key, error)

                                      Remove removes keys from keystore. Returns ipns path of the removed key.

                                      func (*KeyAPI) Rename

                                      func (api *KeyAPI) Rename(ctx context.Context, oldName string, newName string, opts ...caopts.KeyRenameOption) (coreiface.Key, bool, error)

                                        Rename renames `oldName` to `newName`. Returns the key and whether another key was overwritten, or an error.

                                        func (*KeyAPI) Self

                                        func (api *KeyAPI) Self(ctx context.Context) (coreiface.Key, error)
                                        type Link struct {
                                        	Name, Hash string
                                        	Size       uint64
                                        }

                                        type NameAPI

                                        type NameAPI CoreAPI

                                        func (*NameAPI) Publish

                                        func (api *NameAPI) Publish(ctx context.Context, p path.Path, opts ...caopts.NamePublishOption) (coreiface.IpnsEntry, error)

                                          Publish announces new IPNS name and returns the new IPNS entry.

                                          func (*NameAPI) Resolve

                                          func (api *NameAPI) Resolve(ctx context.Context, name string, opts ...caopts.NameResolveOption) (path.Path, error)

                                            Resolve attempts to resolve the newest version of the specified name and returns its path.

                                            func (*NameAPI) Search

                                            func (api *NameAPI) Search(ctx context.Context, name string, opts ...caopts.NameResolveOption) (<-chan coreiface.IpnsResult, error)

                                            type Node

                                            type Node struct {
                                            	Links []Link
                                            	Data  string
                                            }

                                            type ObjectAPI

                                            type ObjectAPI CoreAPI
                                            func (api *ObjectAPI) AddLink(ctx context.Context, base ipath.Path, name string, child ipath.Path, opts ...caopts.ObjectAddLinkOption) (ipath.Resolved, error)

                                            func (*ObjectAPI) AppendData

                                            func (api *ObjectAPI) AppendData(ctx context.Context, path ipath.Path, r io.Reader) (ipath.Resolved, error)

                                            func (*ObjectAPI) Data

                                            func (api *ObjectAPI) Data(ctx context.Context, path ipath.Path) (io.Reader, error)

                                            func (*ObjectAPI) Diff

                                            func (api *ObjectAPI) Diff(ctx context.Context, before ipath.Path, after ipath.Path) ([]coreiface.ObjectChange, error)

                                            func (*ObjectAPI) Get

                                            func (api *ObjectAPI) Get(ctx context.Context, path ipath.Path) (ipld.Node, error)
                                            func (api *ObjectAPI) Links(ctx context.Context, path ipath.Path) ([]*ipld.Link, error)

                                            func (*ObjectAPI) New

                                            func (api *ObjectAPI) New(ctx context.Context, opts ...caopts.ObjectNewOption) (ipld.Node, error)

                                            func (*ObjectAPI) Put

                                            func (api *ObjectAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.ObjectPutOption) (ipath.Resolved, error)
                                            func (api *ObjectAPI) RmLink(ctx context.Context, base ipath.Path, link string) (ipath.Resolved, error)

                                            func (*ObjectAPI) SetData

                                            func (api *ObjectAPI) SetData(ctx context.Context, path ipath.Path, r io.Reader) (ipath.Resolved, error)

                                            func (*ObjectAPI) Stat

                                            func (api *ObjectAPI) Stat(ctx context.Context, path ipath.Path) (*coreiface.ObjectStat, error)

                                            type PinAPI

                                            type PinAPI CoreAPI

                                            func (*PinAPI) Add

                                            func (api *PinAPI) Add(ctx context.Context, p path.Path, opts ...caopts.PinAddOption) error

                                            func (*PinAPI) IsPinned

                                            func (api *PinAPI) IsPinned(ctx context.Context, p path.Path, opts ...caopts.PinIsPinnedOption) (string, bool, error)

                                            func (*PinAPI) Ls

                                            func (api *PinAPI) Ls(ctx context.Context, opts ...caopts.PinLsOption) (<-chan coreiface.Pin, error)

                                            func (*PinAPI) Rm

                                            func (api *PinAPI) Rm(ctx context.Context, p path.Path, opts ...caopts.PinRmOption) error

                                              Rm pin rm api

                                              func (*PinAPI) Update

                                              func (api *PinAPI) Update(ctx context.Context, from path.Path, to path.Path, opts ...caopts.PinUpdateOption) error

                                              func (*PinAPI) Verify

                                              func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, error)

                                              type ProviderAPI

                                              type ProviderAPI CoreAPI

                                                ProviderAPI brings Provider behavior to CoreAPI

                                                func (*ProviderAPI) Provide

                                                func (api *ProviderAPI) Provide(cid cid.Cid) error

                                                  Provide the given cid using the current provider

                                                  type PubSubAPI

                                                  type PubSubAPI CoreAPI

                                                  func (*PubSubAPI) Ls

                                                  func (api *PubSubAPI) Ls(ctx context.Context) ([]string, error)

                                                  func (*PubSubAPI) Peers

                                                  func (api *PubSubAPI) Peers(ctx context.Context, opts ...caopts.PubSubPeersOption) ([]peer.ID, error)

                                                  func (*PubSubAPI) Publish

                                                  func (api *PubSubAPI) Publish(ctx context.Context, topic string, data []byte) error

                                                  func (*PubSubAPI) Subscribe

                                                  type SwarmAPI

                                                  type SwarmAPI CoreAPI

                                                  func (*SwarmAPI) Connect

                                                  func (api *SwarmAPI) Connect(ctx context.Context, pi peer.AddrInfo) error

                                                  func (*SwarmAPI) Disconnect

                                                  func (api *SwarmAPI) Disconnect(ctx context.Context, addr ma.Multiaddr) error

                                                  func (*SwarmAPI) KnownAddrs

                                                  func (api *SwarmAPI) KnownAddrs(context.Context) (map[peer.ID][]ma.Multiaddr, error)

                                                  func (*SwarmAPI) ListenAddrs

                                                  func (api *SwarmAPI) ListenAddrs(context.Context) ([]ma.Multiaddr, error)

                                                  func (*SwarmAPI) LocalAddrs

                                                  func (api *SwarmAPI) LocalAddrs(context.Context) ([]ma.Multiaddr, error)

                                                  func (*SwarmAPI) Peers

                                                  type UnixfsAPI

                                                  type UnixfsAPI CoreAPI

                                                  func (*UnixfsAPI) Add

                                                  func (api *UnixfsAPI) Add(ctx context.Context, files files.Node, opts ...options.UnixfsAddOption) (path.Resolved, error)

                                                    Add builds a merkledag node from a reader, adds it to the blockstore, and returns the key representing that node.

                                                    func (*UnixfsAPI) Get

                                                    func (api *UnixfsAPI) Get(ctx context.Context, p path.Path) (files.Node, error)

                                                    func (*UnixfsAPI) Ls

                                                    func (api *UnixfsAPI) Ls(ctx context.Context, p path.Path, opts ...options.UnixfsLsOption) (<-chan coreiface.DirEntry, error)

                                                      Ls returns the contents of an IPFS or IPNS object(s) at path p, with the format: `<link base58 hash> <link size in bytes> <link name>`