Skip to content

Repository files navigation

RSS Reader Logo

RSS Reader

A local-first desktop RSS reader with optional AI tools.

Releases Version Platform Tauri

OverviewFeaturesWhat's NewDownloadDevelopmentArchitecture


RSS Reader screenshot

Overview

RSS Reader is a Tauri 2 desktop app for reading RSS, Atom, and JSON feeds. It stores data locally in SQLite, keeps feed updates efficient with conditional requests, and adds optional AI workflows for summaries, translation, and article scoring.

The app is designed for a native macOS workflow: Command+W closes the window while keeping the app alive in the Dock, and Command+Q exits the app.

Features

Reading and Feed Management

  • Subscribe to RSS, Atom, and JSON feeds.
  • Import and export subscriptions with OPML.
  • Browse all, unread, starred, and favorite articles.
  • Organize articles with feeds, tags, and groups.
  • Search articles with local full-text search.
  • Handle large article lists with virtualized rendering.

Performance and Background Work

  • Store articles, feeds, rules, and settings locally.
  • Use ETag and Last-Modified to skip unchanged feed downloads.
  • Run feed refresh work in Rust with bounded concurrency.
  • Keep a lightweight background scheduler when the main window is closed.
  • Pause UI-heavy and AI-heavy work when no window is open.
  • Load article rendering, sanitizing, markdown parsing, and code highlighting only when needed.
  • Use a bounded rss-media:// proxy for media that needs caching or range requests.
  • Load video embeds only after user action.

Optional AI Tools

  • Configure OpenAI or Anthropic-compatible AI profiles.
  • Generate single-article summaries.
  • Translate article content.
  • Generate batch digests for multiple articles.
  • Use automation rules and AI scoring to classify or highlight articles.
  • Keep API keys in local app settings.

Desktop Experience

  • Native macOS menu behavior for close, reopen, hide, and quit.
  • Keyboard shortcuts with a settings switch to enable or disable them.
  • Light, dark, and system themes.
  • Context menus and batch actions for common article operations.
  • Interface translations for English, Chinese, Russian, Spanish, French, and Arabic.

What's New in 0.2.0

  • Standard macOS lifecycle: Command+W closes the window, Command+Q quits the app.
  • Lower hidden-state resource use by destroying the WebView when the window is closed.
  • Rust-backed background refresh and cleanup scheduling.
  • Conditional feed fetching with ETag and Last-Modified.
  • Lazy article rendering and lighter media loading.
  • Shortcut enable switch in settings.
  • Fixes for route restore, settings navigation, feed count refresh, and article read state sync.

Download

Ready-to-use builds are published on the GitHub Releases page.

The current release target is macOS. Windows and Linux support are kept in the Tauri configuration, but release testing currently focuses on macOS.

Development

Requirements

Quick Start

git clone https://github.com/JinxinWonderWorld/RSS-Reader.git
cd RSS-Reader
npm install
npm run tauri:dev

Useful Commands

Command Description
npm run dev Run the Vite frontend only
npm run build Type-check and build the frontend
npm run tauri:dev Run the full Tauri app in development
npm run tauri:build Build the release app bundle
npm test -- --run Run frontend tests
npm run lint Run ESLint
cargo test --manifest-path src-tauri/Cargo.toml Run Rust tests

Architecture

  • src-tauri/src/app_runtime.rs: runtime state, background scheduling, and cleanup gates.
  • src-tauri/src/window_lifecycle.rs: macOS window close, reopen, and state restore behavior.
  • src-tauri/src/feed/: feed fetching, conditional requests, and parsing.
  • src-tauri/src/db/: SQLite schema and data access.
  • src-tauri/src/media_protocol.rs: bounded media proxy and range responses.
  • src-tauri/src/ai.rs: AI summary, translation, batch digest, and queue processing.
  • src/services/runtime.ts: frontend bridge for Rust runtime commands.
  • src/stores/: Zustand stores for feeds, settings, rules, UI state, and search history.
  • src/components/: React UI components and lazy-loaded article rendering.

About

A local-first, AI-powered desktop RSS reader built with Tauri and Rust. No cloud, no tracking. Features smart summaries, translation, and immersive reading.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages