Send new RSS/Atom feed items as email

#19 Don't try to insert already existing entries into the database

~witcher commented on rss-email todo

a month ago
a month ago


Fetch new RSS (and Atom) feed items and send them via E-Mail.


#Alpine Linux

A package for Alpine Linux exists in the testing repository: rss-email

#Arch Linux

There are 2 packages available in the AUR:


Install the dependencies:

  • Rust
  • sqlite
  • sqlx-cli (optional, only for development)
  • scdoc

First specify the DATABASE_URL environment variable and set up the database with cargo-sqlx:

export DATABASE_URL='sqlite://./dev.db'
cargo sqlx database setup

Then compile rss-email:

cargo build

To build the man pages, use scdoc:

scdoc < docs/rss-email.1.scd > docs/rss-email.1
scdoc < docs/rss-email.5.scd > docs/rss-email.5


  • Copy the config.example.toml to ~/.config/rss-email/config.toml and adjust the values
  • Create a urls file at ~/.config/rss-email/urls with one RSS url per line

The database used with rss-email is generated automatically if it doesn't exist yet

See the man page or -h for more info. You can view the man page after generating it with scdoc with man -l docs/rss-email.1.
A man page for the configuration exists, too, which you can view after building with scdoc: man -l doc/rss-email.5.


Send patches and questions to ~witcher/rss-email-devel@lists.sr.ht.

Instructions for preparing a patch are available at git-send-email.io.

Bugs and todo can be found at ~witcher/rss-email.


#git hooks

A pre-commit hook is available in contrib/githooks/pre-commit that catches most errors that the CI fail on. I recommend installing it in .git/hooks/pre-commit to catch errors before the CI can since building Rust in the CI is quite expensive.

#Making changes on the database

When making changes on the database, make sure that:

  • a migration is created in the migrations folder with cargo sqlx migrate add -r $MIGRATION_DESCRIPTION
  • sqlx-data.json is up to date by issuing cargo sqlx prepare