LogRocket Blog

Building cross-platform GUI apps in Rust using egui

thumbnail

Building Cross-Platform GUI Apps in Rust Using egui

In this article, we explore how to build cross-platform GUI apps in Rust using the egui library. We also incorporate a database for data storage and fetch random images of cats or dogs for pet detail pages.

Introduction to egui

egui is a GUI library that uses the immediate mode approach, simplifying interaction. It has excellent documentation and a range of examples to showcase its capabilities. Additionally, egui integrates AccessKit for cross-platform accessibility.

Cross-Platform and Web Compatibility

While egui aims to be a cross-platform GUI application library, it has limitations when targeting the web due to its desktop-first focus. With platform-specific adjustments, it could potentially work for web applications as well.

Setting Up a Rust Project

  1. Create a new Rust project.

  2. Edit the Cargo.toml file and add necessary dependencies like egui, image, sqlite, thiserror, log, and others.

  3. Set up a data model for working with SQL, including Pet struct with id, name, and species fields.

  4. Create a database table for the Pet model.

Data Access Implementation

  • Implement functions for database operations like inserting new pets.
    • Acquire a lock to the shared database connection.
    • Prepare and execute SQL queries to interact with the database.

By following these steps, we establish a foundation for building cross-platform GUI applications in Rust using egui, with the added functionality of data storage and image retrieval for a richer user experience.