Slashtags Feeds
A library for creating and managing feeds using Hyperdrive and Hyperswarm.
Usage
Initiate the library.
const feeds = new Feeds();
const feedID = feeds.randomID();
await feeds.update(feedID, 'balance', 1000);
API
const feeds = new Feeds(storage, [opts])
Create a Feeds instance.
storage
Storage directory to save feeds at. Defaults to os.homedir() + '/.slashtags-feeds/'
opts
includes:
metadata
: an object of metadata files to be saved along the data. example { schema: schema }
feeds.randomID()
Generate a random string id to be used as the feedID.
await feeds.feed(feedID)
Returns the feed key
and encryptionKey
for a given feed, identified by any serializable id.
It awaits until the feed is announced on the swarm.
await feeds.update(feedID, key, value)
Updates a feed. key
is a string, and value
is a serializable JSON object.
await feeds.get(feedID, key)
Returns a value from a feed.
await feeds.close()
Gracefully closing feeds and freeing IO resources.
await feeds.destroy(feedID)
Destroys all stored data for the feed.
How it works
As of this first version, Slashtags feeds is a directory on top of Hyperdrive with the current structure:
├── feed
│ ├── foo
│ ├── bar
└── slashfeed.json
Where slashfeed.json
defines the name
, image
and other future metadata about the feed.
And feed
directory contains the feed files, where each file represents a key value pair.