A simple news reading GUI app built in Rust

Overview

Headlines [WIP]

A native GUI app built with Rust using egui. Uses newsapi.org as the source to fetch news articles.

screenshot

This is a WIP and the current status can be found in implementation status

Video walkthrough

Part A

Part B (soon)

Implementation Status

  • Base UI
  • Integrate dark mode
  • Integrate real articles feed.
  • Config window for setting API_KEY
  • State persistance

Setup

Linux

Make sure egui dependencies are installed. Once done, run cargo run on the terminal (you need to have the Rust toolchain installed).

Windows

TODO. Help me test on windows

Web

TODO

Contributions

All kinds of contributions are welcome.

License

MIT

You might also like...
Truly cross platform, truly native. multiple backend GUI for rust
Truly cross platform, truly native. multiple backend GUI for rust

WIP: Sauron-native a rust UI library that conquers all platforms ranging from desktop to mobile devices. An attempt to create a truly native, truly cr

A cross-platform GUI library for Rust focused on simplicity and type-safety
A cross-platform GUI library for Rust focused on simplicity and type-safety

A cross-platform GUI library for Rust, inspired by Elm

Build GUI applications with minimal dependencies in Rust

winapi-app-windows A crate to build applications' windows in Windows using WinAPI. This would be less confusing if the operating system was called som

GUI based tool to sort and categorize images written in Rust
GUI based tool to sort and categorize images written in Rust

ImageSieve GUI based tool to sort out images based on similarity, categorize them according to their creation date and archive them in a target folder

egui: an easy-to-use immediate mode GUI in pure Rust
egui: an easy-to-use immediate mode GUI in pure Rust

🖌 egui: an easy-to-use GUI in pure Rust egui is a simple, fast, and highly portable immediate mode GUI library for Rust. egui runs on the web, native

Cross-platform GUI toolkit written in Rust
Cross-platform GUI toolkit written in Rust

Tuix is a cross-platform GUI toolkit written in Rust. The driving principle behind tuix is to be a self-contained, small-as-possible, but still fast,

A light windows GUI toolkit for rust

Native Windows GUI Welcome to Native Windows GUI (aka NWG). A rust library to develop native GUI applications on the desktop for Microsoft Windows. NW

A GUI for NordVPN on Linux that maintains feature parity with the official clients, written with Rust and GTK.

Viking for NordVPN This project aims to provide a fully usable and feature-complete graphical interface for NordVPN on Linux. While it attempts to clo

A cross-platform GUI toolkit in Rust

NXUI - Native X UI A cross-platform GUI toolkit in Rust NXUI is a GUI toolkit that calls OS native APIs as much as possible to achieve fast operation.

Comments
  • Not all widgets are visible

    Not all widgets are visible

    I'm test your demo on Linux mint. but the dark mode and close buttons can not be see. please check your code.

    image

    Yes I have installed all dependencies for Linux.

    opened by ssrlive 0
  • does not compile on more recent versions

    does not compile on more recent versions

    HELLO

    Just FYI,

    I built this OK and used it as supplied, works fine. Thank you.

    However, today I upgraded headlines Cargo.toml to use the most recent versions of dependent crates eframe and tracing-subscriber (current as of 3 Feb 2022) and this project no longer compiles or compiles and does not run, has a lot of issues, too numerous to mention (functions no longer found, life-time annotation errors, etc).

    tracing-subscriber = "0.2.25" - tried 0.3.0 up to 0.3.7 (0.3.0 compiled but got run-time errors). eframe = {version = "0.14.0", features = ["persistence"]} - tried 0.15.0 and 0.16.0 (latest as of 3 Feb 2022)

    I can always use the old versions of those dependent crates, as you had used, but it wont be good enough for very long.

    egui appears to be too early in its development cycle to start using now, the code disruption/API churn is simply too great. I can not even compile their eframe examples with newest (0.16.0) either.

    It is a pity, as egui/eframe/epi looked like a good Rust GUI candidate.

    If you ever manage to "upgrade" this project to use the latest crate versions, please let us know.

    thanks and regards

    opened by yuribudilov 1
  • fixed:  app_rx thread not fetching news

    fixed: app_rx thread not fetching news

    Thread did not fetch the news with the refresh button.

    the pr contains the fix for the code.

    either web assembly and the UI was tested. The errors from app_rx.recv() when closing the frame was swallowed not showing in the terminal.

    opened by lunarpulse 0
  • [Exercise] Implement refresh button event handler

    [Exercise] Implement refresh button event handler

    In part b, we finished headlines but left the refresh button event handler for grab.

    As an exercise, it would be great to implement the refresh button event handler.

    We want the following behavior:

    When the refresh button is clicked, the app should momentarily render a loading screen, and then make another get request to top-headlines endpoint and re-populate the list of articles.

    Feel free to reach out for queries.

    exercise 
    opened by creativcoder 3
Owner
creativcoder
Distributed systems, databases and compilers Loves @rustlang Author: Mastering Rust 2nd Edition
creativcoder
A small dice roller app with GUI written in Rust 🦀🎲

?? Mini Dice A small dice roller written in Rust and using the egui library. Demo ?? A short introduction... I started creating Mini Dice with the goa

Angelica Raborar 4 May 16, 2023
GUI app for managing Docker

dockeye GUI app for managing Docker Installation Prebuilt packages Download one of the archives available on the releases page and extract it somewher

Wojciech Kępka 397 Jan 3, 2023
A powerful desktop widget app for windows, built with Vue and Tauri.

DashboardX Widgets A powerful desktop widget app for windows, built with Vue and Tauri. Still in development Currently only runs on windows (uses nati

DashboardX Widgets 3 Oct 25, 2023
A simple, cross-platform GUI automation module for Rust.

AutoPilot AutoPilot is a Rust port of the Python C extension AutoPy, a simple, cross-platform GUI automation library for Python. For more information,

null 271 Dec 27, 2022
A simple GUI version of the pH calibration tool written in egui, based on the eframe template.

caliphui A simple GUI version of the pH calibration tool written in egui, based on the eframe template. Usage Native binaries are provided under relea

Peter Dunne 0 Dec 29, 2021
An easy-to-use, 2D GUI library written entirely in Rust.

Conrod An easy-to-use, 2D GUI library written entirely in Rust. Guide What is Conrod? A Brief Summary Screenshots and Videos Feature Overview Availabl

PistonDevelopers 3.3k Jan 1, 2023
Rust bindings for the FLTK GUI library.

fltk-rs Rust bindings for the FLTK Graphical User Interface library. The FLTK crate is a crossplatform lightweight gui library which can be statically

Mohammed Alyousef 1.1k Jan 9, 2023
Idiomatic, GTK+-based, GUI library, inspired by Elm, written in Rust

Relm Asynchronous, GTK+-based, GUI library, inspired by Elm, written in Rust. This library is in beta stage: it has not been thoroughly tested and its

null 2.2k Dec 31, 2022
Clear Coat is a Rust wrapper for the IUP GUI library.

Clear Coat Clear Coat is a Rust wrapper for the IUP GUI library. IUP uses native controls and has Windows and GTK backends. A macOS backend has been o

Jordan Miner 18 Feb 13, 2021
A cross-platform GUI library for Rust, inspired by Elm

Iced A cross-platform GUI library for Rust focused on simplicity and type-safety. Inspired by Elm. Features Simple, easy-to-use, batteries-included AP

Héctor Ramón 17.5k Jan 2, 2023