1 stable release
1.0.0 | Aug 8, 2021 |
---|
#3 in #composability
36KB
647 lines
koifeed
An Atom/RSS reader written in Rust. This is a personal project, but if you're interested in some portability-related changes, let me know.
Some Basic Questions
What
A barebones feed aggregator for the command line emphasizing composability.
Why
I love the terminal for several reasons: how applications can easily interact, how few machine resources are necessary, and its general retro aura. I used to use Newsboat, but it seems to lack documentation or implementation for features I want. It also contained features I don't need. I found it more difficult than preferred to pull the information I wanted from specific feeds and articles and to feed that information to other programs. Still, many of its users swear by it, so the fault probably lied with me there. In any case, this program is fun to write and maintain, and it works the way I want it to.
Dependencies (see Cargo.toml
)
- clap-rs
- reqwest
- xml-rs
- probably some others that I forgot about
Usage
Setup
cargo install koifeed
should work. Otherwise, building from source should work on most Unix-like systems. Feeds are stored directly in an OPML file. The program reads this file to update individual feed files named by title. There is currently no way to manage feeds other than editing the OPML file directly. There are no plans to add any. koifeed
requires that this file be located at $HOME/.config/koifeed/feeds.opml
; it stores feeds in $HOME/.local/share/koifeed/
.
Commands
Command-line arguments are handled by the glorious clap-rs
crate. clap
provides the --help
flag for koi
as well as all of its subcommands.
Examples
Example | Effect |
---|---|
koi list | grep 01-01 |
Print a list of all feeds that were published/last updated on January 1st. |
koi content favnewsfeed 1 | w3m -T text/html |
Assuming the second article in the second feed contains raw HTML, page through the properly displayed HTML using w3m. |
mpv `koi link youtubefeed 0` |
Use mpv with youtube-dl to play the latest video from a youtube-generated feed. |
Dependencies
~6–18MB
~238K SLoC