Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrDataNotFound = errors.New("Data not found on the storage")
Functions ¶
This section is empty.
Types ¶
type IPFS ¶
type IPFS struct {
// contains filtered or unexported fields
}
IPFS structu contains the IPFS shell connection
The OpenRead method conforms to ipld.BlockReadOpener, and the OpenWrite method conforms to ipld.BlockWriteOpener. Therefore it's easy to use in a LinkSystem like this:
store := storage.Redis{} lsys.StorageReadOpener = (&store).OpenRead lsys.StorageWriteOpener = (&store).OpenWrite
type Memory ¶
type Memory struct {
Bag map[ipld.Link][]byte
}
Memory is a simple in-memory storage for data indexed by ipld.Link. (It's little more than a map -- in fact, the map is exported, and you can poke it directly.)
The OpenRead method conforms to ipld.BlockReadOpener, and the OpenWrite method conforms to ipld.BlockWriteOpener. Therefore it's easy to use in a LinkSystem like this:
store := storage.Memory{} lsys.StorageReadOpener = (&store).OpenRead lsys.StorageWriteOpener = (&store).OpenWrite
This storage is mostly expected to be used for testing and demos, and as an example of how you can implement and integrate your own storage systems.
type Redis ¶
type Redis struct {
// contains filtered or unexported fields
}
Redis is a key value storage for data indexed by ipld.Link.
The OpenRead method conforms to ipld.BlockReadOpener, and the OpenWrite method conforms to ipld.BlockWriteOpener. Therefore it's easy to use in a LinkSystem like this:
store := storage.Redis{} lsys.StorageReadOpener = (&store).OpenRead lsys.StorageWriteOpener = (&store).OpenWrite
type Storage ¶
type Storage interface { OpenRead(lnkCtx ipld.LinkContext, lnk ipld.Link) (io.Reader, error) OpenWrite(lnkCtx ipld.LinkContext) (io.Writer, ipld.BlockWriteCommitter, error) }
Storage represents the default interface for linkable data
func NewIPFSStorage ¶
func NewMemoryStorage ¶
func NewMemoryStorage() Storage