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/....
Directories ¶
Path | Synopsis |
---|---|
Godeps
|
|
_workspace/src/bazil.org/fuse
Package fuse enables writing FUSE file systems on Linux, OS X, and FreeBSD.
|
Package fuse enables writing FUSE file systems on Linux, OS X, and FreeBSD. |
_workspace/src/bazil.org/fuse/fs/bench
Package bench contains benchmarks.
|
Package bench contains benchmarks. |
_workspace/src/bazil.org/fuse/hellofs
Hellofs implements a simple "hello world" file system.
|
Hellofs implements a simple "hello world" file system. |
_workspace/src/bazil.org/fuse/syscallx
Package syscallx provides wrappers that make syscalls on various platforms more interoperable.
|
Package syscallx provides wrappers that make syscalls on various platforms more interoperable. |
_workspace/src/github.com/briantigerchow/pubsub
Package pubsub implements a simple multi-topic pub-sub library.
|
Package pubsub implements a simple multi-topic pub-sub library. |
_workspace/src/github.com/cenkalti/backoff
Package backoff implements backoff algorithms for retrying operations.
|
Package backoff implements backoff algorithms for retrying operations. |
_workspace/src/github.com/codahale/hdrhistogram
Package hdrhistogram provides an implementation of Gil Tene's HDR Histogram data structure.
|
Package hdrhistogram provides an implementation of Gil Tene's HDR Histogram data structure. |
_workspace/src/github.com/codahale/metrics
Package metrics provides minimalist instrumentation for your applications in the form of counters and gauges.
|
Package metrics provides minimalist instrumentation for your applications in the form of counters and gauges. |
_workspace/src/github.com/codahale/metrics/runtime
Package runtime registers gauges and counters for various operationally important aspects of the Go runtime.
|
Package runtime registers gauges and counters for various operationally important aspects of the Go runtime. |
_workspace/src/github.com/dustin/go-humanize
Package humanize converts boring ugly numbers to human-friendly strings and back.
|
Package humanize converts boring ugly numbers to human-friendly strings and back. |
_workspace/src/github.com/facebookgo/atomicfile
Package atomicfile provides the ability to write a file with an eventual rename on Close.
|
Package atomicfile provides the ability to write a file with an eventual rename on Close. |
_workspace/src/github.com/hashicorp/golang-lru
This package provides a simple LRU cache.
|
This package provides a simple LRU cache. |
_workspace/src/github.com/ipfs/go-datastore/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. |
_workspace/src/github.com/ipfs/go-datastore/fs
Package fs is a simple Datastore implementation that stores keys are directories and files, mirroring the key.
|
Package fs is a simple Datastore implementation that stores keys are directories and files, mirroring the key. |
_workspace/src/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. |
_workspace/src/github.com/ipfs/go-datastore/measure
Package measure provides a Datastore wrapper that records metrics using github.com/codahale/metrics.
|
Package measure provides a Datastore wrapper that records metrics using github.com/codahale/metrics. |
_workspace/src/github.com/ipfs/go-datastore/mount
Package mount provides a Datastore that has other Datastores mounted at various key prefixes.
|
Package mount provides a Datastore that has other Datastores mounted at various key prefixes. |
_workspace/src/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. |
_workspace/src/github.com/ipfs/go-datastore/syncmount
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 |
_workspace/src/github.com/jbenet/go-context/frac
Package ctxext provides multiple useful context constructors.
|
Package ctxext provides multiple useful context constructors. |
_workspace/src/github.com/jbenet/go-context/io
Package ctxio provides io.Reader and io.Writer wrappers that respect context.Contexts.
|
Package ctxio provides io.Reader and io.Writer wrappers that respect context.Contexts. |
_workspace/src/github.com/jbenet/go-is-domain
Package isdomain package allows users to check whether strings represent domain names.
|
Package isdomain package allows users to check whether strings represent domain names. |
_workspace/src/github.com/olekukonko/ts
This module is a Terminal API for the Go Programming Language.
|
This module is a Terminal API for the Go Programming Language. |
_workspace/src/github.com/rs/cors
Package cors is net/http handler to handle CORS related requests as defined by http://www.w3.org/TR/cors/ You can configure it by passing an option struct to cors.New: c := cors.New(cors.Options{ AllowedOrigins: []string{"foo.com"}, AllowedMethods: []string{"GET", "POST", "DELETE"}, AllowCredentials: true, }) Then insert the handler in the chain: handler = c.Handler(handler) See Options documentation for more options.
|
Package cors is net/http handler to handle CORS related requests as defined by http://www.w3.org/TR/cors/ You can configure it by passing an option struct to cors.New: c := cors.New(cors.Options{ AllowedOrigins: []string{"foo.com"}, AllowedMethods: []string{"GET", "POST", "DELETE"}, AllowCredentials: true, }) Then insert the handler in the chain: handler = c.Handler(handler) See Options documentation for more options. |
_workspace/src/github.com/satori/go.uuid
Package uuid provides implementation of Universally Unique Identifier (UUID).
|
Package uuid provides implementation of Universally Unique Identifier (UUID). |
_workspace/src/github.com/steakknife/hamming
hamming distance calculations in Go https://github.com/steakknife/hamming Copyright © 2014, 2015 Barry Allard MIT license Usage The functions are named (CountBits)?(Byte|Uint64)s?.
|
hamming distance calculations in Go https://github.com/steakknife/hamming Copyright © 2014, 2015 Barry Allard MIT license Usage The functions are named (CountBits)?(Byte|Uint64)s?. |
_workspace/src/github.com/syndtr/goleveldb/leveldb
Package leveldb provides implementation of LevelDB key/value database.
|
Package leveldb provides implementation of LevelDB key/value database. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/cache
Package cache provides interface and implementation of a cache algorithms.
|
Package cache provides interface and implementation of a cache algorithms. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/comparer
Package comparer provides interface and implementation for ordering sets of data.
|
Package comparer provides interface and implementation for ordering sets of data. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/errors
Package errors provides common error types used throughout leveldb.
|
Package errors provides common error types used throughout leveldb. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/filter
Package filter provides interface and implementation of probabilistic data structure.
|
Package filter provides interface and implementation of probabilistic data structure. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/iterator
Package iterator provides interface and implementation to traverse over contents of a database.
|
Package iterator provides interface and implementation to traverse over contents of a database. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/journal
Package journal reads and writes sequences of journals.
|
Package journal reads and writes sequences of journals. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/memdb
Package memdb provides in-memory key/value database implementation.
|
Package memdb provides in-memory key/value database implementation. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/opt
Package opt provides sets of options used by LevelDB.
|
Package opt provides sets of options used by LevelDB. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/storage
Package storage provides storage abstraction for LevelDB.
|
Package storage provides storage abstraction for LevelDB. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/table
Package table allows read and write sorted key/value.
|
Package table allows read and write sorted key/value. |
_workspace/src/github.com/syndtr/goleveldb/leveldb/util
Package util provides utilities used throughout leveldb.
|
Package util provides utilities used throughout leveldb. |
_workspace/src/github.com/syndtr/gosnappy/snappy
Package snappy implements the snappy block-based compression format.
|
Package snappy implements the snappy block-based compression format. |
_workspace/src/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. |
_workspace/src/gopkg.in/fsnotify.v1
Package fsnotify provides a platform-independent interface for file system notifications.
|
Package fsnotify provides a platform-independent interface for file system notifications. |
package blocks contains the lowest level of ipfs data structures, the raw block with a checksum.
|
package blocks contains the lowest level of ipfs data structures, the raw block with a checksum. |
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. |
bloom
package bloom implements a simple bloom filter.
|
package bloom implements a simple bloom filter. |
set
package set contains various different types of 'BlockSet's
|
package set contains various different types of 'BlockSet's |
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. |
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. |
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. |
package diagnostics implements a network diagnostics service that allows a request to traverse the network and gather information on every node connected to it.
|
package diagnostics implements a network diagnostics service that allows a request to traverse the network and gather information on every node connected to it. |
pb
Package diagnostics_pb is a generated protocol buffer package.
|
Package diagnostics_pb is a generated protocol buffer package. |
package exchange defines the IPFS Exchange interface
|
package exchange defines the IPFS Exchange interface |
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. |
bitswap/decision
package decision implements the decision engine for the bitswap service.
|
package decision implements the decision engine for the bitswap service. |
bitswap/message/pb
Package bitswap_message_pb is a generated protocol buffer package.
|
Package bitswap_message_pb is a generated protocol buffer package. |
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. |
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. |
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. |
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 |
chunk
package chunk implements streaming block splitters
|
package chunk implements streaming block splitters |
package merkledag implements the ipfs Merkle DAG datastructures.
|
package merkledag implements the ipfs Merkle DAG datastructures. |
pb
Package merkledag_pb is a generated protocol buffer package.
|
Package merkledag_pb is a generated protocol buffer package. |
traverse
Package traverse provides merkledag traversal functions
|
Package traverse provides merkledag traversal functions |
package mfs implements an in memory model of a mutable ipfs filesystem.
|
package mfs implements an in memory model of a mutable ipfs filesystem. |
Package namesys implements resolvers and publishers for the IPFS naming system (IPNS).
|
Package namesys implements resolvers and publishers for the IPFS naming system (IPNS). |
pb
Package namesys_pb is a generated protocol buffer package.
|
Package namesys_pb is a generated protocol buffer package. |
Package path implements utilities for resolving paths within ipfs.
|
Package path implements utilities for resolving paths within ipfs. |
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. |
internal/pb
Package pb is a generated protocol buffer package.
|
Package pb is a generated protocol buffer package. |
config
package config implements the ipfs config file datastructures and utilities.
|
package config implements the ipfs config file datastructures and utilities. |
fsrepo
package fsrepo TODO explain the package roadmap...
|
package fsrepo TODO explain the package roadmap... |
package routing defines the interface for a routing system used by ipfs.
|
package routing defines the interface for a routing system used by ipfs. |
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. |
dht/pb
Package dht_pb is a generated protocol buffer package.
|
Package dht_pb is a generated protocol buffer package. |
kbucket
package kbucket implements a kademlia 'k-bucket' routing table.
|
package kbucket implements a kademlia 'k-bucket' routing table. |
mock
Package mock provides a virtual routing server.
|
Package mock provides a virtual routing server. |
test
|
|
sharness/lib
package randomdep is here to introduce a dependency in random for godep to function properly.
|
package randomdep is here to introduce a dependency in random for godep to function properly. |
dependencies
Module
|
|
testplans
|
|
bitswap
Module
|
|
thirdparty
|
|
loggables
Package loggables includes a bunch of translator functions for commonplace/stdlib objects.
|
Package loggables includes a bunch of translator functions for commonplace/stdlib objects. |
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 |
testutil/ci
Package ci implements some helper functions to use during tests.
|
Package ci implements some helper functions to use during tests. |
testutil/ci/travis
Package travis implements some helper functions to use during tests.
|
Package travis implements some helper functions to use during tests. |
Package format 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 format 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 |
io
package unixfs/io implements convenience objects for working with the ipfs unixfs data format.
|
package unixfs/io implements convenience objects for working with the ipfs unixfs data format. |
pb
Package unixfs_pb is a generated protocol buffer package.
|
Package unixfs_pb is a generated protocol buffer package. |
Click to show internal directories.
Click to hide internal directories.