Feed fetcher, filterer, and aggregator.
Crates
slipstream-cli- Simple CLIslipfeedserver and reader utilizing a simple config.slipstream-feeds(slipfeed) - Feed fetcher, filterer, and aggregator library.
Getting Started
slipstream
slipstream is a command-line application for serving filtered/aggregated feeds
from existing feeds a la Yahoo Pipes. A simple configuration file (e.g.
slipstream.toml) is used to define feeds,
relationships, and filters.
Serve
Running slipstream --config <your-config.toml> serve --port <your-port> will
start a web server that exposes the following endpoints:
/configfor viewing the config (toml)./all(or/) for viewing all entries (html)./feed/<feed_name>for viewing a specific feed (html)./tag/<tag_name>for viewing a feed for entries with a specific tag (html)./all/feedfor viewing all entries (atom)./feed/<feed_name>/feedfor viewing a specific feed (atom)./tag/<tag_name>/feedfor viewing a feed for entries with a specific tag (atom).
An example can be found at my personal website feeds.hachha.dev.

Read
Running slipstream --config <your-config.toml> read will launch a local tui.
The slipstream reader supports the following features:
- Custom commands
- Custom keybindings
- Custom colors
- Responsive layout (horizontal and vertical)
- Hooks
Check out the example config to see additional configuration options.

Roadmap
While the slipfeed and slipstream APIs may not be stable, they are
essentially complete as-is. slipstream development was originally intended to
be separate, but it has since been merged into slipknot (now named
slipstream).
slipfeed- Add other built-in feed implementations (e.g. activitypub)
slipstream(general)- Add more filters (regex/pomsky, allowlists, etc.)
- OPML conversion support
- Use sqlite for storing entries and feed definitions
slipstream(reader)- Support pagination (or make automatic)
- Indicate pending updates
- Improve help menu
slipstream(api)- Allow syncing tags to a slipstream server
- Add support for a shared secret in an http header
Contributing
Simple bug fixes and suggestions are welcome. At this time, more in-depth contributions will likely be rejected unless discussed ahead-of-time.