Crates.io | rss-funnel |
lib.rs | rss-funnel |
version | 0.0.5 |
source | src |
created_at | 2024-02-20 07:26:08.071448 |
updated_at | 2024-02-20 07:26:08.071448 |
description | A composable feed processing pipeline |
homepage | https://github.com/shouya/rss-funnel |
repository | https://github.com/shouya/rss-funnel |
max_upload_size | |
id | 1146060 |
size | 439,210 |
The RSS Funnel is a modular RSS processing pipeline. It is designed to be used to modify existing RSS source in various interesting ways such as:
[[https://rss-funnel-demo.fly.dev/][Try out the live demo!]]
** Installation
You can use the docker image ([[https://github.com/shouya/rss-funnel/pkgs/container/rss-funnel][latest version]]) in your =docker-compose.yaml=:
#+begin_src yaml version: "3.8" services: rss-funnel: image: ghcr.io/shouya/rss-funnel:latest ports: - 4080:4080 volumes: - ./funnel.yaml:/funnel.yaml command: /rss-funnel -c /funnel.yaml server -b 0.0.0.0:4080 #+end_src
Alternatively, you can build it directly from source:
#+begin_src bash git clone https://github.com/shouya/rss-funnel.git cd rss-funnel
cd inspector && npm i && npm run build && cd ..
cargo build --release #+end_src
Or if you prefer not to build from source, you can download the pre-built artifacts from [[https://github.com/shouya/rss-funnel/releases][release page]].
** Usage
To use =rss-funnel=, you need to supply a configuration file in YAML. Here is an example configuration.
#+begin_src yaml endpoints:
path: /tokio-blog.xml note: Full text of Tokio blog source: https://tokio.rs/_next/static/feed.xml filters:
path: /solidot.xml note: Solidot news with links source: https://www.solidot.org/index.rss filters:
path: /hackernews.xml note: Full text of Hacker News source: https://news.ycombinator.com/rss filters:
Save above file to =/path/to/funnel.yaml= and run the following command:
#+begin_src rss-funnel -c /path/to/funnel.yaml server #+end_src
You can optionally specify the bind address and port (default =127.0.0.1:4080=). Detailed usage can be found in =--help= output.
The endpoints like =http://127.0.0.1:4080/tokio-blog.xml= should be serving the filtered feeds.
** Endpoint
Each of the configuration contains a number of endpoints. Each endpoint correspond to a RSS feed.
Properties:
** Filters
See [[https://github.com/shouya/rss-funnel/wiki/Filters][Filters]] for the documentations for all available filters.
** Cookbook
See [[https://github.com/shouya/rss-funnel/wiki/Cookbook][Cookbook]] for some examples of using =rss-funnel=.