~/work/owly-newsAktiv

Owly News

Ein gemeinsamer Rust-Core versorgt eine Tauri/Svelte-Desktop-App und ein natives ratatui-TUI; lokale Zusammenfassungen bleiben optional und nie eine harte Abhängigkeit.

Solo-Engineer · Open-Source-Projekt · 2025 - heute

Was es macht

Feeds, Aktualisierung, SQLite-Persistenz, Suche und Zusammenfassungen liegen hinter einem gemeinsamen Rust-Core. Desktop- und Terminal-Oberfläche nutzen dieselben Domain- und Speichergrenzen.

Problem

Ein Newsreader soll weiter abrufen und lesbar bleiben, wenn Zusammenfassungen nicht verfügbar sind.

Rahmenbedingungen

  • Zwei Oberflächen brauchen dasselbe Verhalten, während Terminal- und Tauri-Typen außerhalb des Cores bleiben.

Wie es gebaut ist

  • Feeds gelangen über Abruf und Aktualisierung in den gemeinsamen Rust-Core.
  • SQLite, Suche und Events bleiben in owly-core.
  • Tauri/Svelte- und ratatui-Frontends nutzen dasselbe Verhalten; Zusammenfassungen sind optional.
Owly News · gemeinsamer Core

Engineering-Entscheidungen

Domain-Verhalten in owly-core halten

GUI und TUI teilen Persistenz, Aktualisierung und Abfragesemantik.

Trade-off Frontend-Adapter müssen die Core-Grenze respektieren.

Zusammenfassung als Trait modellieren

Provider können wechseln oder fehlen, ohne Feeds zu brechen.

Trade-off Ausstehende Zusammenfassungen brauchen explizite Retry-Semantik.

Nachweise

Geteiltes Verhalten
Rust-Core

Desktop- und Terminal-Frontends

Lokale Persistenz
SQLite

WAL und paralleler Zugriff

LLM-Grenze
Optional

Feeds laufen ohne Zusammenfassung weiter

Zugehörige Fallstudie

Die Projektseite beschreibt, was existiert. Die Fallstudie verfolgt die Entscheidungen, Rahmenbedingungen und Trade-offs dahinter.

Case Study

Highlights

  • Ein Core, zwei Oberflächen Tauri-Commands/-Events und eine Terminal-Zustandsmaschine nutzen beide owly-core.
  • KI bleibt optional Nicht verfügbare Provider lassen Artikel erneut versuchbar, statt den Abruf zu brechen.