Commits


Bump version to 0.3.0 Release notes can be found at https://git.sr.ht/~witcher/rss-email/refs/0.3.0


Send E-Mails asynchronously Thanks to the introduction of tokio in the codebase, E-Mails can now be sent asynchronously as well, speeding up the implementation even more. Implements: https://todo.sr.ht/~witcher/rss-email/16


Remove feedurl and author from database This patch removes the columns `feedurl` and `author` from the database schema as they're not used by the program or any feeds I've come across.


Add Atom support This patch adds Atom support besides the already existing RSS support. First the feed is trying to be interpreted as RSS, then as Atom if that didn't work. Implements: https://todo.sr.ht/~witcher/rss-email/15


Acquire author/version info from Cargo.toml


Add `contrib` with `pre-commit` git hook


Update `sqlx-data.json`


readme: DATABASE_URL needs to be a valid URL


Update CLI version


Update mailing list in README.md


Fix panic on insertion and invalid time stamp rss-email would panic when inserting a post that already is inserted (primary key already exists), so the insertion is skipped entirely (`INSERT OR IGNORE`). If a post has an invalid time stamp, the application would also panic, even though the timestamp is not crucial data. Instead, a default is used for the timestamp.


Bump version


Fix clippy lint


Elaborate on sqlx for compiling and contributing


Build CI in debug mode Not building CI in release mode will speed up compilation and use less resources on the CI host. Building in release mode is also not needed currently anymore as no build artifacts are generated for download.


Add `sqlx-data.json` for building in offline mode


Add migrations to use with sqlx Migrations are embedded into the binary and run on startup with `sqlx::migrate!()`.


Replace diesel with sqlx This replaces the non-async Diesel with the async sqlx to allow for better performance through parallelising the insertion or updating of posts in the database. Migrations have not yet been implemented. Implements: https://todo.sr.ht/~witcher/rss-email/12 Implements: https://todo.sr.ht/~witcher/rss-email/3


Implement async fetching This changeset implements fetching of RSS feeds asynchronously. It's still no perfect though: data from feeds is inserted into the database synchronously, and requests are temporarily paused while this happens (since we're doing blocking IO to the database). A potential solution to this is to have one thread that does the networking, and another which inserts into the DB, with something like an mpsc::channel to pass messages between them. This requires further refactor and can be done as a followup. It would also be great to re-use a single reqwest::Client, but that also requires further refactors. Despite imperfections, this patch still provides a noticeable speed bump; networking IO for one feed does not block others. References: https://todo.sr.ht/~witcher/rss-email/3


CI: Use release builds only


CI: Remove build artifacts Build artifacts are now removed as diesel does not support dynamic linking. References: https://todo.sr.ht/~witcher/rss-email/11


CI: Remove `openssl-dev` package


CI: Remove step verifying signature of commit This blocked patches from being built in CI.


Update Cargo.lock


Use RustTLS instead of native OpenSSL Signed-off-by: jman <srht@city17.xyz>