 Documentation
      ¶
      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
      ¶
      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/hashicorp/golang-lru
            
            
          
           This package provides a simple LRU cache. | This package provides a simple LRU cache. | 
| 
          
            _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/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. | 
| 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/go-timeout
            
            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
          
          
         | |
| 
          
            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
            
            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. 

