ipfs

package module
v0.0.0-...-ce94876 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2019 License: MIT Imports: 0 Imported by: 0

README

Ungx-ed fork of go-ipfs

GoDoc

This repository is an unofficial fork of github.com/ipfs/go-ipfs, converted from a gx based project to a plain Go project. The goal is to act as an IPFS library that can be imported and used from Go apps without the need of switching all dependency management over to gx. As a bonus, this fork is compatible with GoDoc!

For a rundown of why gx is not the best solution at the moment, please see the rationale section behind the ungx project.

Differences from upstream

Upstream go-ipfs is both a gx based project, as well as depends on many third party gx based packages. To use it in plain Go projects, all gx packages need to be resolved into their original canonical versions, or need to be converted into non-gx ones.

This fork uses the following logic to ungx go-ipfs:

  • If a dependency has a plain Go canonical version (e.g. golang.org/x/net), the dependency is converted from an IPFS multihash into its canonical path and vendored into the standard vendor folder. This ensures they play nice with the usual package managers.
  • If a dependency is only available as a gx project (e.g. github.com/libp2p/go-libp2p), the dependency is converted from an IPFS multihash into its canonical path, but is moved into the gxlibs folder within the main repository. This ensures external packages can import them.

Two caveats were also needed to enable this fork:

  • If multiple versions of the same plain Go dependency is found, these cannot be vendored in. In such cases, all clashing dependencies are embedded into the gxlibs/gx/ipfs folder with their original IPFS multihashes. This retains the original behavior whilst still permitting imports.
  • If an embedded dependency contains canonical path constraints (e.g. golang.org/x/sys/unix), these constraints are blindly deleted from the dependency sources. Unfortunately this is the only way to allow external code to import them without Go failing the build.

The ungx-ing process is done automatically for the master branch in a nightly Travis cron job from the ungx branch in this repository. Upstream releases (i.e. tags) are not yet ungx-ed to prevent having to re-tag versions if a bug in ungx is discovered. Those will be added and tagged when the process is deemed reliable enough.

Demo

The hello-world of IPFS is retrieving the official welcome page from the network. With the IPFS command line client this looks something like:

$ ipfs cat QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB
Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝
[...]

Doing the same thing from Go is a bit more involved as it entails creating an ephemeral in-process IPFS node and using that as a gateway to retrieve the welcome page:

package main

import (
	"context"
	"fmt"
	"io/ioutil"
	"log"

	"github.com/ipsn/go-ipfs/core"
	"github.com/ipsn/go-ipfs/core/coreapi"
	"github.com/ipsn/go-ipfs/core/coreapi/interface"
)

func main() {
	// Create a new IPFS network node
	node, err := core.NewNode(context.TODO(), &core.BuildCfg{Online: true})
	if err != nil {
		log.Fatalf("Failed to start IPFS node: %v", err)
	}
	path, _ := iface.ParsePath("QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB")

	// Resolve the IPFS welcome page
	reader, err := coreapi.NewCoreAPI(node).Unixfs().Get(context.TODO(), path)
	if err != nil {
		log.Fatalf("Failed to look up IPFS welcome page: %v", err)
	}
	// Retrieve and print the welcome page
	blob, err := ioutil.ReadAll(reader)
	if err != nil {
		log.Fatalf("Failed to retrieve IPFS welcome page: %v", err)
	}
	fmt.Println(string(blob))
}

However, after the dependencies are met, our pure Go IPFS code works flawlessly:

$ go get -v github.com/ipsn/go-ipfs/core
$ go run ipfs.go
Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝
[...]
Proper dependencies

Although the above demo works correctly, running go get -v github.com/ipsn/go-ipfs/core is not for the faint of heart. It will place about 1193 packages into you GOPATH 😱. A much better solution is to use your favorite dependency manager!

Demo with govendor:

$ go get -u github.com/kardianos/govendor
$ govendor init
$ govendor fetch -v +missing
$ go run ipfs.go
[...]

Credits

This repository is maintained by Péter Szilágyi (@karalabe), but authorship of all code contained inside belongs to the upstream go-ipfs project.

License

Same as upstream (MIT).

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.
pb
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.
Package periodic 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).
pin
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
dir
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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL