# viaduct: a Linux port of NetNewsWire

> A Linux RSS reader in Rust and GTK4 that the README calls a port of NetNewsWire. A local OPML file is the account input; cargo build --release writes target/release/viaduct, and the CI workflow runs cargo test --workspace.

- Type: Case study
- Targets: App
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-03
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/VirInvictus/Viaduct>
- Primary source: <https://github.com/VirInvictus/Viaduct/blob/a0622903b93da2c2752244cf6d415377a41fbe7a/README.md>
- Catalog page: <https://awesomerea.org/resources/viaduct-netnewswire-case/>
- Record JSON: <https://awesomerea.org/resources/viaduct-netnewswire-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/viaduct-netnewswire-case/index.md)

## Requirements & limits

- **Scope:** Commit a0622903b93da2c2752244cf6d415377a41fbe7a. The README says Viaduct translates NetNewsWire’s local-account architecture. Local accounts keep OPML on disk as the source of truth; Inoreader is the other supported account. The .netnewswire reference tree is gitignored, so that tree is not in the public Git history.
- **Testing evidence:** cargo build --release writes target/release/viaduct. The README names gtk4 and WebKitGTK 6.0 as build dependencies. .github/workflows/ci.yml runs cargo clippy --workspace --all-targets and xvfb-run -a cargo test --workspace.
- **License:** LICENSE is the MIT license, with copyright lines for Brent Simmons and Ranchero Software (2002-2026) and Brandon LaRocque (2026).

## Primary sources

1. <https://github.com/VirInvictus/Viaduct/blob/a0622903b93da2c2752244cf6d415377a41fbe7a/README.md>
2. <https://github.com/VirInvictus/Viaduct/blob/a0622903b93da2c2752244cf6d415377a41fbe7a/.github/workflows/ci.yml>
3. <https://github.com/VirInvictus/Viaduct/blob/a0622903b93da2c2752244cf6d415377a41fbe7a/LICENSE>

## More in Apps

- [zalo-linux: a Linux package of the Zalo desktop app](https://awesomerea.org/resources/zalo-linux-desktop-case/index.md) · Case study
- [Free-BBN: recreating the PlayStation Broadband Navigator dashboard](https://awesomerea.org/resources/free-bbn-case/index.md) · Case study
- [Serato Tags: reconstructing Serato DJ GEOB metadata](https://awesomerea.org/resources/serato-tags-case/index.md) · Case study
- [lsdj-decomp: matching Little Sound Dj 9.4.2 reconstruction](https://awesomerea.org/resources/lsdj-9-4-2-decomp-case/index.md) · Case study
- [Moonlight Windows: reconstructing NVIDIA GameStream for Windows](https://awesomerea.org/resources/moonlight-windows-gamestream-case/index.md) · Case study
- [sas7bdat: reconstructing the SAS7BDAT database format](https://awesomerea.org/resources/sas7bdat-format-study-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
