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
            
            command
          
           
      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/codegangsta/cli
            
            
          
           
      Package cli provides a minimal framework for creating and organizing command line Go applications. 
         | 
      Package cli provides a minimal framework for creating and organizing command line Go applications. | 
| 
         
          
            _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/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/github.com/whyrusleeping/iptb/util
            
            
          
           
      +build !windows 
         | 
      +build !windows | 
| 
         
          
            _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
            
            command
          
           
      cmd/ipfs implements the primary CLI binary for ipfs 
         | 
      cmd/ipfs implements the primary CLI binary for ipfs | 
| 
         
          
            ipfswatch
            
            command
          
          
         
       | 
      |
| 
         
          
            seccat
            
            command
          
           
      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
        | 
      |
| 
         
          
            api-startup
            
            command
          
          
         
       | 
      |
| 
         
          
            bench/bench_cli_ipfs_add
            
            command
          
          
         
       | 
      |
| 
         
          
            bench/offline_add
            
            command
          
          
         
       | 
      |
| 
         
          
            dependencies/go-sleep
            
            command
          
          
         
       | 
      |
| 
         
          
            dependencies/iptb
            
            command
          
          
         
       | 
      |
| 
         
          
            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. | 
| 
         
          
            supernode_client
            
            command
          
          
         
       | 
      |
| 
       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
            
            command
          
           
      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.