Posted on

From Command Line Interface to Graphical User Interface

The Rust community is active and has tons of nice articles, tutorials, applications, and repositories but we have to choose. This fifth email is all about setting up your project for a GUI app or CLI utility. Let’s dive in …

In today’s email:

  • Setting up your own Rust project
  • Want to make your own app with a GUI?
  • Command Line Interface: unleash the power of Rust

Setting up your own Rust project

When starting a new Rust project, the package manager cargo for Rust has you covered. With a simple command in your terminal cargo new project_name you are ready to write your Rust application.

But what if you want to add additional files or directories to your project? Rust uses a module system, with modules and submodules. Then questions arise on how to include those modules. Do I know where to put my unit tests and integration tests? That’s why I created a dummy project to show the possibilities, please check it out on GitHub.

Other nice reads are a blog article on Hackernoon, and for testing, you can also have a look at the documentation of Rust by Example here.

The great thing about Rust is that testing, benchmarking, examples, and package management are not an afterthought but rather integrated from the start.

Project structure

Want to make your own app with a GUI?

Tauri for GUI apps
The ecosystem of Rust is ever-growing. One popular toolkit is Tauri. With this toolkit, you can build Awesome graphical applications for macOS, Linux, and Windows.

The GUI/frontend is based on web technology like javascript/typescript and HTML.

Tauri is really worth looking at if you want to develop a (simple) desktop application.

Command Line Interface: unleash the power of Rust

Command line programs are popular among Rust developers. It is an easy starting point if you want to make something in Rust.

There is a free getting-started book called Command Line Applications in Rust.

The Clap crate is an easy-to-use command line parser and a great fit for your next CLI project.

For more inspiration have a look at existing CLI utilities on lib.rs.

CLI terminal

Enjoy your Sunday, and have a great week ahead.

Thanks for reading!
Bob Peters

Feel free to connect with me on LinkedIn