July 20, 2021 by Olivier Goffart and Simon Hausmann

Introducing cargo-ui, a GUI for cargoBlog RSS

Every day at SixtyFPS, we build Rust code using the cargo command line tool. Since we are a developing a GUI library in Rust, we were curious what a GUI for cargo could look like. So we started a side-project called cargo-ui, which provides a simple GUI on top of the cargo command line tool.


The goal is to help newcomers to the Rust ecosystem to familiarize themselves with the tooling.

Today's release is a very early version, that already supports basic features like selecting build profiles as well as build targets. For newcomers, this feature makes release builds easier to discover. They will no longer miss that by default they will get un-optimized debug builds, resulting in poor performing code.

cargo-ui also nicely highlights errors and warnings encountered during the build.

Looking Ahead

We would like to extend this basic feature set with tools for advanced rustaceans, as we continue to work on cargo-ui. For example, a graphical way to visualize crate dependencies, configuring features used during the build, and editing of the Cargo.toml files.

screenshot of cargo-ui

Try it out

The code is on Github. You can install the tool with

cargo install cargo-ui

The UI looks better with a native style if you install Qt and use the native style.

SIXTYFPS_STYLE=native cargo install cargo-ui

Then you can launch it with

cargo ui

Help Welcome

Contributions: ideas for features or better UI/UX design are very welcome.

About SixtyFPS

SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++, and JavaScript. Find more information at https://sixtyfps.io/ or go straight to github at https://github.com/sixtyfpsui/sixtyfps

In other news, we started to publish a weekly update every Monday.


Comments

Slint is a Rust-based toolkit for creating reactive and fluent user interfaces across a range of targets, from embedded devices with limited resources to powerful mobile devices and desktop machines. Supporting Android, Windows, Mac, Linux, and bare-metal systems, Slint features an easy-to-learn domain-specific language (DSL) that compiles into native code, optimizing for the target device's capabilities. It facilitates collaboration between designers and developers on shared projects and supports business logic development in Rust, C++, JavaScript, or Python.