July 20, 2021 by Olivier Goffart and Simon Hausmann
Introducing cargo-ui, a GUI for cargo
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.
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.
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.