RudiRSS is a rudimentary RSS reader implemented in C++ on Windows.
- Fast and lightweight
- Use Microsoft Edge WebView2 to render web contents
- Support RSS2.0/Atom feeds
- Import feeds from OPML or simple list file
- Implement without 3rd party libraries
I read RSS feeds every day and have used many RSS readers, however, some are heavy and have too many features that I seldom use, some don't maintain anymore. And I just want a simple RSS reader that could render web content without issues. Therefore I spent some time implementing it on Windows in C++, and by pure Win32 APIs and built-in SDKs without 3rd party dependencies (except for the google-test framework to test core libraries.).
Before I implement RudiRSS, I implemented libmsxml to parse feeds and libWinHttp to grab feeds from web. They are both used by RudiRSS.
You can import feeds by File
menu -> Import from OPML
or Import from list file
.
The list file have content like this
https://www.makeuseof.com//feed
https://www.geeksforgeeks.org//feed
https://news.ycombinator.com/rss
...
The search box locates in top-right, choosing Source feeds
means to filter out source feeds, while Feed items
means to filter out feed items by title.
You could create an optional configuration file named rudirss.ini
under the folder %APPDATA%\rudirss
.
Some settings could be configured like
[Database]
AllowDeleteOutdatedFeedItems=1 ;The program will delete outdated feed items at startup
ReserveDays=7300 ;How many days do we want to keep feed items? 7300 days = 20 years
[Display]
FeedWidth=250 ;The width to display the feed-source panel
FeedItemTitleColumnWidth=350 ;The width of title column in the feed-item panel
FeedItemUpdatedColumnWidth=200 ;The width of updated column in the feed-item panel
FeedSortMethod=1 ;0: unsorted; 1: ascending sorting order 2: descending sorting order
By default, each feed will update every 30
minutes. By design, each feed have its own updated interval and can be set differently, however, the implementation doesn't provide its configuration so far. An other approach to configure it is by modifying its updateinterval
value in Feed
table in rudirss.db
, where rudirss.db
is a SQLite database, any SQLite browsing tool could modify it.
- Executable binaries can be downloaded on latest release page.
git clone https://github.com/lambertlulala/rudirss.git
git submodule update --init --recursive
- Build with Visual Studio Community 2022
- Implement console version of RudiRSS
- Plugin system that allows users to script or load their custom libraries
- Filter that enables users to decide what feeds to be kept in the database
- Add other configurations(in ini file or UI) to control some internal parameters
- Dark mode