Writing a Rust MySQL Gui

A first post for the year! I have been doing less experimentation with Rust than I would like, but; like all developers; a new year means a new hobby project!

So meet my mid February effort on SimpleSQL. It’s only two weeks in.

I have used a ListView on the left panel for the database listings and the Gtk.Sourceview5 for the source editor at the top of the main content area.

For the database connection I have been using the rust mysql crate. I have the database queries working, but have not yet enabled the display of results. I will be using a ColumnView in the main content area for this.

This was my first real attempt at structuring a Rust application into multiple modules with different modules responsible for different areas of the layout and custom signals for communication. It was also my first proper experiment with RefCells and OnceCells.

The final goal of SimpleSQL is to provide an easy way to backup and restore mysqldump .sql files between local and remote hosts. I find myself regularly taking a mysqldump from a remote server and restoring locally for development or when trying to test bugs. Currently I use Datagrip to do this.

So far the biggest challenge I found was working out how to use RefCell correctly to store the mysql connection.