Documentation ¶
Overview ¶
IPFS is a global, versioned, peer-to-peer filesystem
There are sub-packages within the ipfs package for various low-level utilities, which are in turn assembled into:
core/...:
The low-level API that gives consumers all the knobs they need, which we try hard to keep stable.
shell/...:
The high-level API that gives consumers easy access to common operations (e.g. create a file node from a reader without wrapping with metadata). We work really hard to keep this stable.
Then on top of the core/... and shell/... Go APIs, we have:
cmd/...:
Command-line executables
test/...:
Integration tests, etc.
To avoid cyclic imports, imports should never pull in higher-level APIs into a lower-level package. For example, you could import all of core and shell from cmd/... or test/..., but you couldn't import any of shell from core/....
Index ¶
Constants ¶
View Source
const ApiVersion = "/go-ipfs/" + CurrentVersionNumber + "/"
View Source
const CurrentVersionNumber = "0.4.19-dev"
CurrentVersionNumber is the current application's version literal
Variables ¶
View Source
var CurrentCommit string
CurrentCommit is the current git commit, this is set as a ldflag in the Makefile
Functions ¶
This section is empty.
Types ¶
This section is empty.
Directories ¶
Path | Synopsis |
---|---|
blocks
|
|
blockstoreutil
Package blockstoreutil provides utility functions for Blockstores.
|
Package blockstoreutil provides utility functions for Blockstores. |
cmd
|
|
ipfs
cmd/ipfs implements the primary CLI binary for ipfs
|
cmd/ipfs implements the primary CLI binary for ipfs |
seccat
package main provides an implementation of netcat using the secio package.
|
package main provides an implementation of netcat using the secio package. |
Package core implements the IpfsNode object and related methods.
|
Package core implements the IpfsNode object and related methods. |
commands
Package commands implements the ipfs command interface Using github.com/ipfs/go-ipfs/commands to define the command line and HTTP APIs.
|
Package commands implements the ipfs command interface Using github.com/ipfs/go-ipfs/commands to define the command line and HTTP APIs. |
coreapi
Package coreapi provides direct access to the core commands in IPFS.
|
Package coreapi provides direct access to the core commands in IPFS. |
coreapi/interface
Package iface defines IPFS Core API which is a set of interfaces used to interact with IPFS nodes.
|
Package iface defines IPFS Core API which is a set of interfaces used to interact with IPFS nodes. |
corehttp
Package corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to IPFS.
|
Package corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to IPFS. |
corerepo
Package corerepo provides pinning and garbage collection for local IPFS block services.
|
Package corerepo provides pinning and garbage collection for local IPFS block services. |
exchange
|
|
Package filestore implements a Blockstore which is able to read certain blocks of data directly from its original location in the filesystem.
|
Package filestore implements a Blockstore which is able to read certain blocks of data directly from its original location in the filesystem. |
fuse
|
|
ipns
package fuse/ipns implements a fuse filesystem that interfaces with ipns, the naming system for ipfs.
|
package fuse/ipns implements a fuse filesystem that interfaces with ipns, the naming system for ipfs. |
mount
package mount provides a simple abstraction around a mount point
|
package mount provides a simple abstraction around a mount point |
readonly
package fuse/readonly implements a fuse filesystem to access files stored inside of ipfs.
|
package fuse/readonly implements a fuse filesystem to access files stored inside of ipfs. |
gxlibs
|
|
github.com/gxed/pubsub
Package pubsub implements a simple multi-topic pub-sub library.
|
Package pubsub implements a simple multi-topic pub-sub library. |
github.com/hsanjuan/go-libp2p-gostream
Package gostream allows to replace the standard net stack in Go with [LibP2P](https://github.com/libp2p/libp2p) streams.
|
Package gostream allows to replace the standard net stack in Go with [LibP2P](https://github.com/libp2p/libp2p) streams. |
github.com/hsanjuan/go-libp2p-http
Package p2phttp allows to serve HTTP endpoints and make HTTP requests through LibP2P (https://github.com/libp2p/libp2p) using Go's standard "http" and "net" stacks.
|
Package p2phttp allows to serve HTTP endpoints and make HTTP requests through LibP2P (https://github.com/libp2p/libp2p) using Go's standard "http" and "net" stacks. |
github.com/ipfs/go-bitswap
package bitswap implements the IPFS exchange interface with the BitSwap bilateral exchange protocol.
|
package bitswap implements the IPFS exchange interface with the BitSwap bilateral exchange protocol. |
github.com/ipfs/go-bitswap/decision
package decision implements the decision engine for the bitswap service.
|
package decision implements the decision engine for the bitswap service. |
github.com/ipfs/go-bitswap/wantlist
package wantlist implements an object for bitswap that contains the keys that a given peer wants.
|
package wantlist implements an object for bitswap that contains the keys that a given peer wants. |
github.com/ipfs/go-block-format
Package blocks contains the lowest level of IPLD data structures.
|
Package blocks contains the lowest level of IPLD data structures. |
github.com/ipfs/go-blockservice
package blockservice implements a BlockService interface that provides a single GetBlock/AddBlock interface that seamlessly retrieves data either locally or from a remote peer through the exchange.
|
package blockservice implements a BlockService interface that provides a single GetBlock/AddBlock interface that seamlessly retrieves data either locally or from a remote peer through the exchange. |
github.com/ipfs/go-cid
Package cid implements the Content-IDentifiers specification (https://github.com/ipld/cid) in Go.
|
Package cid implements the Content-IDentifiers specification (https://github.com/ipld/cid) in Go. |
github.com/ipfs/go-datastore/autobatch
Package autobatch provides a go-datastore implementation that automatically batches together writes by holding puts in memory until a certain threshold is met.
|
Package autobatch provides a go-datastore implementation that automatically batches together writes by holding puts in memory until a certain threshold is met. |
github.com/ipfs/go-datastore/delayed
Package delayed wraps a datastore allowing to artificially delay all operations.
|
Package delayed wraps a datastore allowing to artificially delay all operations. |
github.com/ipfs/go-datastore/examples
Package fs is a simple Datastore implementation that stores keys as directories and files, mirroring the key.
|
Package fs is a simple Datastore implementation that stores keys as directories and files, mirroring the key. |
github.com/ipfs/go-datastore/failstore
Package failstore implements a datastore which can produce custom failures on operations by calling a user-provided error function.
|
Package failstore implements a datastore which can produce custom failures on operations by calling a user-provided error function. |
github.com/ipfs/go-datastore/keytransform
Package keytransform introduces a Datastore Shim that transforms keys before passing them to its child.
|
Package keytransform introduces a Datastore Shim that transforms keys before passing them to its child. |
github.com/ipfs/go-datastore/mount
Package mount provides a Datastore that has other Datastores mounted at various key prefixes and is threadsafe
|
Package mount provides a Datastore that has other Datastores mounted at various key prefixes and is threadsafe |
github.com/ipfs/go-datastore/namespace
Package namespace introduces a namespace Datastore Shim, which basically mounts the entire child datastore under a prefix.
|
Package namespace introduces a namespace Datastore Shim, which basically mounts the entire child datastore under a prefix. |
github.com/ipfs/go-datastore/retrystore
Package retrystore provides a datastore wrapper which allows to retry operations.
|
Package retrystore provides a datastore wrapper which allows to retry operations. |
github.com/ipfs/go-ds-flatfs
Package flatfs is a Datastore implementation that stores all objects in a two-level directory structure in the local file system, regardless of the hierarchy of the keys.
|
Package flatfs is a Datastore implementation that stores all objects in a two-level directory structure in the local file system, regardless of the hierarchy of the keys. |
github.com/ipfs/go-ds-measure
Package measure provides a Datastore wrapper that records metrics using github.com/ipfs/go-metrics-interface
|
Package measure provides a Datastore wrapper that records metrics using github.com/ipfs/go-metrics-interface |
github.com/ipfs/go-ipfs-blockstore
Package blockstore implements a thin wrapper over a datastore, giving a clean interface for Getting and Putting block objects.
|
Package blockstore implements a thin wrapper over a datastore, giving a clean interface for Getting and Putting block objects. |
github.com/ipfs/go-ipfs-blocksutil
Package blocksutil provides utility functions for working with Blocks.
|
Package blocksutil provides utility functions for working with Blocks. |
github.com/ipfs/go-ipfs-chunker
Package chunk implements streaming block splitters.
|
Package chunk implements streaming block splitters. |
github.com/ipfs/go-ipfs-cmds
Package cmds helps building both standalone and client-server applications.
|
Package cmds helps building both standalone and client-server applications. |
github.com/ipfs/go-ipfs-ds-help
Package dshelp provides utilities for parsing and creating datastore keys used by go-ipfs
|
Package dshelp provides utilities for parsing and creating datastore keys used by go-ipfs |
github.com/ipfs/go-ipfs-exchange-interface
Package exchange defines the IPFS exchange interface
|
Package exchange defines the IPFS exchange interface |
github.com/ipfs/go-ipfs-exchange-offline
package offline implements an object that implements the exchange interface but returns nil values to every request.
|
package offline implements an object that implements the exchange interface but returns nil values to every request. |
github.com/ipfs/go-ipfs-posinfo
Package posinfo wraps offset information used by ipfs filestore nodes
|
Package posinfo wraps offset information used by ipfs filestore nodes |
github.com/ipfs/go-ipfs-pq
Package pq implements a priority queue.
|
Package pq implements a priority queue. |
github.com/ipfs/go-ipfs-routing/mock
Package mockrouting provides a virtual routing server.
|
Package mockrouting provides a virtual routing server. |
github.com/ipfs/go-ipfs-routing/none
Package nilrouting implements a routing client that does nothing.
|
Package nilrouting implements a routing client that does nothing. |
github.com/ipfs/go-ipfs-routing/offline
Package offline implements IpfsRouting with a client which is only able to perform offline operations.
|
Package offline implements IpfsRouting with a client which is only able to perform offline operations. |
github.com/ipfs/go-ipfs-util
Package util implements various utility functions used within ipfs that do not currently have a better place to live.
|
Package util implements various utility functions used within ipfs that do not currently have a better place to live. |
github.com/ipfs/go-log
Package log is the logging library used by IPFS (https://github.com/ipfs/go-ipfs).
|
Package log is the logging library used by IPFS (https://github.com/ipfs/go-ipfs). |
github.com/ipfs/go-merkledag
Package merkledag implements the IPFS Merkle DAG data structures.
|
Package merkledag implements the IPFS Merkle DAG data structures. |
github.com/ipfs/go-merkledag/pb
Package merkledag_pb is a generated protocol buffer package.
|
Package merkledag_pb is a generated protocol buffer package. |
github.com/ipfs/go-merkledag/traverse
Package traverse provides merkledag traversal functions
|
Package traverse provides merkledag traversal functions |
github.com/ipfs/go-mfs
package mfs implements an in memory model of a mutable IPFS filesystem.
|
package mfs implements an in memory model of a mutable IPFS filesystem. |
github.com/ipfs/go-path
Package path contains utilities to work with ipfs paths.
|
Package path contains utilities to work with ipfs paths. |
github.com/ipfs/go-path/resolver
Package resolver implements utilities for resolving paths within ipfs.
|
Package resolver implements utilities for resolving paths within ipfs. |
github.com/ipfs/go-unixfs
Package unixfs implements a data format for files in the IPFS filesystem It is not the only format in ipfs, but it is the one that the filesystem assumes
|
Package unixfs implements a data format for files in the IPFS filesystem It is not the only format in ipfs, but it is the one that the filesystem assumes |
github.com/ipfs/go-unixfs/archive
Package archive provides utilities to archive and compress a [Unixfs] DAG.
|
Package archive provides utilities to archive and compress a [Unixfs] DAG. |
github.com/ipfs/go-unixfs/archive/tar
Package tar provides functionality to write a unixfs merkledag as a tar archive.
|
Package tar provides functionality to write a unixfs merkledag as a tar archive. |
github.com/ipfs/go-unixfs/hamt
Package hamt implements a Hash Array Mapped Trie over ipfs merkledag nodes.
|
Package hamt implements a Hash Array Mapped Trie over ipfs merkledag nodes. |
github.com/ipfs/go-unixfs/importer
Package importer implements utilities used to create IPFS DAGs from files and readers.
|
Package importer implements utilities used to create IPFS DAGs from files and readers. |
github.com/ipfs/go-unixfs/importer/balanced
Package balanced provides methods to build balanced DAGs, which are generalistic DAGs in which all leaves (nodes representing chunks of data) are at the same distance from the root.
|
Package balanced provides methods to build balanced DAGs, which are generalistic DAGs in which all leaves (nodes representing chunks of data) are at the same distance from the root. |
github.com/ipfs/go-unixfs/importer/trickle
Package trickle allows to build trickle DAGs.
|
Package trickle allows to build trickle DAGs. |
github.com/ipfs/go-unixfs/io
Package io implements convenience objects for working with the ipfs unixfs data format.
|
Package io implements convenience objects for working with the ipfs unixfs data format. |
github.com/ipfs/go-unixfs/mod
Package mod provides DAG modification utilities to, for example, insert additional nodes in a unixfs DAG or truncate them.
|
Package mod provides DAG modification utilities to, for example, insert additional nodes in a unixfs DAG or truncate them. |
github.com/jbenet/goprocess
Package goprocess introduces a Process abstraction that allows simple organization, and orchestration of work.
|
Package goprocess introduces a Process abstraction that allows simple organization, and orchestration of work. |
github.com/jbenet/goprocess/periodic
Package periodic is part of github.com/jbenet/goprocess.
|
Package periodic is part of github.com/jbenet/goprocess. |
github.com/jbenet/goprocess/ratelimit
Package ratelimit is part of github.com/jbenet/goprocess.
|
Package ratelimit is part of github.com/jbenet/goprocess. |
github.com/libp2p/go-buffer-pool
Package pool provides a sync.Pool equivalent that buckets incoming requests to one of 32 sub-pools, one for each power of 2, 0-32.
|
Package pool provides a sync.Pool equivalent that buckets incoming requests to one of 32 sub-pools, one for each power of 2, 0-32. |
github.com/libp2p/go-libp2p-crypto
Package crypto implements various cryptographic utilities used by ipfs.
|
Package crypto implements various cryptographic utilities used by ipfs. |
github.com/libp2p/go-libp2p-kad-dht
Package dht implements a distributed hash table that satisfies the ipfs routing interface.
|
Package dht implements a distributed hash table that satisfies the ipfs routing interface. |
github.com/libp2p/go-libp2p-kbucket
package kbucket implements a kademlia 'k-bucket' routing table.
|
package kbucket implements a kademlia 'k-bucket' routing table. |
github.com/libp2p/go-libp2p-loggables
Package loggables includes a bunch of transaltor functions for commonplace/stdlib objects.
|
Package loggables includes a bunch of transaltor functions for commonplace/stdlib objects. |
github.com/libp2p/go-libp2p-peer
Package peer implements an object used to represent peers in the ipfs network.
|
Package peer implements an object used to represent peers in the ipfs network. |
github.com/libp2p/go-libp2p-peerstore/addr
Package addr provides utility functions to handle peer addresses.
|
Package addr provides utility functions to handle peer addresses. |
github.com/libp2p/go-libp2p-routing
package routing defines the interface for a routing system used by ipfs.
|
package routing defines the interface for a routing system used by ipfs. |
github.com/libp2p/go-libp2p-secio
Package secio is used to encrypt `go-libp2p-conn` connections.
|
Package secio is used to encrypt `go-libp2p-conn` connections. |
github.com/libp2p/go-libp2p/p2p/host/relay
The relay package contains host implementations that automatically advertise relay addresses when the presence of NAT is detected.
|
The relay package contains host implementations that automatically advertise relay addresses when the presence of NAT is detected. |
github.com/libp2p/go-libp2p/p2p/net/mock
Package mocknet provides a mock net.Network to test with.
|
Package mocknet provides a mock net.Network to test with. |
github.com/libp2p/go-libp2p/p2p/test/reconnects
Package reconnect tests connect -> disconnect -> reconnect works
|
Package reconnect tests connect -> disconnect -> reconnect works |
github.com/libp2p/go-reuseport
Package reuseport provides Listen and Dial functions that set socket options in order to be able to reuse ports.
|
Package reuseport provides Listen and Dial functions that set socket options in order to be able to reuse ports. |
github.com/libp2p/go-sockaddr/net
package sockaddrnet provides conversions between net.Addr and Sockaddr
|
package sockaddrnet provides conversions between net.Addr and Sockaddr |
github.com/libp2p/go-testutil/ci
Package ci implements some helper functions to use during tests.
|
Package ci implements some helper functions to use during tests. |
github.com/libp2p/go-testutil/ci/travis
Package travis implements some helper functions to use during tests.
|
Package travis implements some helper functions to use during tests. |
github.com/libp2p/go-ws-transport
Package websocket implements a websocket based transport for go-libp2p.
|
Package websocket implements a websocket based transport for go-libp2p. |
github.com/lucas-clemente/quic-go/internal/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
github.com/lucas-clemente/quic-go/internal/mocks/ackhandler
Package mockackhandler is a generated GoMock package.
|
Package mockackhandler is a generated GoMock package. |
github.com/lucas-clemente/quic-go/internal/mocks/crypto
Package mockcrypto is a generated GoMock package.
|
Package mockcrypto is a generated GoMock package. |
github.com/multiformats/go-multiaddr
Package multiaddr provides an implementation of the Multiaddr network address format.
|
Package multiaddr provides an implementation of the Multiaddr network address format. |
github.com/multiformats/go-multiaddr-net
Package manet provides Multiaddr specific versions of common functions in stdlib's net package.
|
Package manet provides Multiaddr specific versions of common functions in stdlib's net package. |
github.com/multiformats/go-multihash
Package multihash is the Go implementation of https://github.com/multiformats/multihash, or self-describing hashes.
|
Package multihash is the Go implementation of https://github.com/multiformats/multihash, or self-describing hashes. |
github.com/multiformats/go-multihash/opts
Package opts helps to write commands which may take multihash options.
|
Package opts helps to write commands which may take multihash options. |
github.com/multiformats/go-multistream
Package multistream implements a simple stream router for the multistream-select protocoli.
|
Package multistream implements a simple stream router for the multistream-select protocoli. |
github.com/polydawn/refmt
Refmt is a serialization and object-mapping library.
|
Refmt is a serialization and object-mapping library. |
github.com/polydawn/refmt/cbor
Package implementing the CBOR -- Concise Binary Object Notation -- http://cbor.io/ -- spec.
|
Package implementing the CBOR -- Concise Binary Object Notation -- http://cbor.io/ -- spec. |
github.com/polydawn/refmt/json
Package implementing the JSON -- http://json.org/ -- spec.
|
Package implementing the JSON -- http://json.org/ -- spec. |
github.com/polydawn/refmt/obj
The `obj` package defines Marshaller and Unmarshaller types, which can be used to convert in-memory values to token streams, and token streams to unpack in-memory values.
|
The `obj` package defines Marshaller and Unmarshaller types, which can be used to convert in-memory values to token streams, and token streams to unpack in-memory values. |
github.com/polydawn/refmt/obj/atlas
Atlas types are used to define how to map Go values into refmt token streams.
|
Atlas types are used to define how to map Go values into refmt token streams. |
github.com/polydawn/refmt/obj/atlas/common
commonatlases is a package full of `atlas.Entry` definions for common types in the standard library.
|
commonatlases is a package full of `atlas.Entry` definions for common types in the standard library. |
github.com/polydawn/refmt/shared
The `shared` package defines helper types and functions used internally by all the other refmt packages; it is not user-facing.
|
The `shared` package defines helper types and functions used internally by all the other refmt packages; it is not user-facing. |
github.com/polydawn/refmt/tok
Package containing Token struct and TokenType info.
|
Package containing Token struct and TokenType info. |
github.com/polydawn/refmt/tok/fixtures
Token stream test fixtures.
|
Token stream test fixtures. |
github.com/whyrusleeping/base32
Package base32 implements base32 encoding as specified by RFC 4648.
|
Package base32 implements base32 encoding as specified by RFC 4648. |
github.com/whyrusleeping/cbor/go
CBOR is IETF RFC 7049, the "Concise Binary Object Representation" http://tools.ietf.org/html/rfc7049 In can be thought of as "binary JSON" but is a superset and somewhat richer representation than JSON.
|
CBOR is IETF RFC 7049, the "Concise Binary Object Representation" http://tools.ietf.org/html/rfc7049 In can be thought of as "binary JSON" but is a superset and somewhat richer representation than JSON. |
github.com/whyrusleeping/chunker
Package chunker implements Content Defined Chunking (CDC) based on a rolling Rabin Checksum.
|
Package chunker implements Content Defined Chunking (CDC) based on a rolling Rabin Checksum. |
github.com/whyrusleeping/go-notifier
Package notifier provides a simple notification dispatcher meant to be embedded in larger structres who wish to allow clients to sign up for event notifications.
|
Package notifier provides a simple notification dispatcher meant to be embedded in larger structres who wish to allow clients to sign up for event notifications. |
github.com/whyrusleeping/go-notifier/Godeps/_workspace/src/github.com/jbenet/goprocess
Package goprocess introduces a Process abstraction that allows simple organization, and orchestration of work.
|
Package goprocess introduces a Process abstraction that allows simple organization, and orchestration of work. |
github.com/whyrusleeping/go-notifier/Godeps/_workspace/src/github.com/jbenet/goprocess/periodic
Package periodic is part of github.com/jbenet/goprocess.
|
Package periodic is part of github.com/jbenet/goprocess. |
github.com/whyrusleeping/go-notifier/Godeps/_workspace/src/github.com/jbenet/goprocess/ratelimit
Package ratelimit is part of github.com/jbenet/goprocess.
|
Package ratelimit is part of github.com/jbenet/goprocess. |
github.com/whyrusleeping/go-smux-multistream
package multistream implements a peerstream transport using go-multistream to select the underlying stream muxer
|
package multistream implements a peerstream transport using go-multistream to select the underlying stream muxer |
Package namesys implements resolvers and publishers for the IPFS naming system (IPNS).
|
Package namesys implements resolvers and publishers for the IPFS naming system (IPNS). |
Package pin implements structures and methods to keep track of which objects a user wants to keep stored locally.
|
Package pin implements structures and methods to keep track of which objects a user wants to keep stored locally. |
gc
Package gc provides garbage collection for go-ipfs.
|
Package gc provides garbage collection for go-ipfs. |
fsrepo
package fsrepo TODO explain the package roadmap...
|
package fsrepo TODO explain the package roadmap... |
test
|
|
thirdparty
|
|
notifier
Package notifier provides a simple notification dispatcher meant to be embedded in larger structres who wish to allow clients to sign up for event notifications.
|
Package notifier provides a simple notification dispatcher meant to be embedded in larger structres who wish to allow clients to sign up for event notifications. |
pollEndpoint
pollEndpoint is a helper utility that waits for a http endpoint to be reachable and return with http.StatusOK
|
pollEndpoint is a helper utility that waits for a http endpoint to be reachable and return with http.StatusOK |
Click to show internal directories.
Click to hide internal directories.