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:
The low-level API that gives consumers all the knobs they need, which we try hard to keep stable.
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:
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/....
const CurrentVersionNumber = "0.4.20-dev"
CurrentVersionNumber is the current application's version literal
CurrentCommit is the current git commit, this is set as a ldflag in the Makefile
|blocks/blockstoreutil||Package blockstoreutil provides utility functions for Blockstores.|
|cmd/ipfs||cmd/ipfs implements the primary CLI binary for ipfs|
|cmd/seccat||package main provides an implementation of netcat using the secio package.|
|core||Package core implements the IpfsNode object and related methods.|
|core/commands||Package commands implements the ipfs command interface|
|core/coreapi||Package coreapi provides direct access to the core commands in IPFS.|
|core/corehttp||Package corehttp provides utilities for the webui, gateways, and other high-level HTTP interfaces to IPFS.|
|filestore||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.|
|fuse/mount||package mount provides a simple abstraction around a mount point|
|fuse/readonly||package fuse/readonly implements a fuse filesystem to access files stored inside of ipfs.|
|namesys||Package namesys implements resolvers and publishers for the IPFS naming system (IPNS).|
|pin||Package pin implements structures and methods to keep track of which objects a user wants to keep stored locally.|
|pin/gc||Package gc provides garbage collection for go-ipfs.|
|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.|
|thirdparty/pollEndpoint||pollEndpoint is a helper utility that waits for a http endpoint to be reachable and return with http.StatusOK|