Our UX Software Engineer Florian Blasius began dealing with the new programming language Rust in his spare time. With the support of a few colleagues at Ergosign, he developed the UI framework OrbTK especially for it. You can find out exactly how he did this and how Focus Time at Ergosign helped him in this article.
"The Orbital Widget Toolkit is a multi platform (G)UI toolkit for building scalable user interfaces with the programming language Rust. It's based on the Entity Component System Pattern and provides a functional-reactive API. The main goals of OrbTK are ‘fast performance’, ‘easy to use’ and ‘cross platform."
You can find this definition online when you search ‘OrbTK’. It comes from Florian Blasius, one of our UX Software Developers, who works intensively with the programming language and eventually noticed that Rust has a downside: it doesn’t have a mature native UI framework.
First things first: Florian, what is Rust?
Florian: Rust is a young, modern programming language that differs from other languages through equally strong focus on security, productivity and performance. These benefits have been recognized by many companies, which are now productively using Rust. Examples include DropBox, Yelp and Firefox.
And where does Rust come from?
Florian: Rust was initiated and developed by the developers behind the web browser Firefox. The first stable version was released in May 2015. A large active community developed gradually: central package management platform crates.io alone counts over 820,000,000 downloads. The community supports the founders in further development and provides valuable input.
What makes Rust especially interesting to you?
Florian: The fact that the Rust developers managed to create a language in which the three key aims of security, performance and productivity can be implemented so well. My experience of starting Rust also won me over, as it was made easier thanks to good documentation and examples as well as a helpful community. Another plus is Rust’s general infrastructure, which you can rely on as a developer. Especially noteworthy are the Cargo package management, the crates.io package repository and the helpful developer tools, such as the Rust language server (RLS).
That sounds promising... how did you come across Rust?
Florian: As a UX Software Engineer, I’m generally interested in new developments and tools. I also simply wanted to learn something new and stumbled upon Rust online. I quickly noticed that there is a very interesting programming language behind Rust, which is blazing new trails and implementing these well. I quickly felt comfortable in the Rust community and learning the language was fun, with the exception of a couple of difficult brain teasers.
Ergosign’s Focus Time concept also gave me the chance to tackle it during my work hours, which gave me additional motivation.
Focus Time at Ergosign: once a month, our staff have the opportunity to tackle a topic of their choosing in Focus Time. This could be new design tools, programming languages, creative methods or their own projects that they’d like to implement. To this end, they have access to our IoT lab, for example. You can find out more about the lab and projects already implemented there in this article.
How does OrbTK fit in?
Florian: As a UX Software Engineer at Ergosign, I work on the technical implementation of UX designs. A UI framework is essential to this work. As I also wanted to use Rust to implement user interfaces, I did some online research into UI frameworks. Unfortunately, I only found projects that had either already been discontinued, weren’t yet mature or simply didn’t comply with my needs. In my research, I came across the team behind the Redox OS project, who were working with OrbTK to develop a UI framework for Rust. I began getting involved in the development of OrbTK.
I then used the Focus Time at Ergosign to pursue the idea of a completely new development of OrbTK to create a modern, platform-independent and scalable UI framework. A couple of coworkers from Ergosign also gradually joined in; we now sometimes work on OrbTK together. We’re also supported in this development by the Redox community, who provide their infrastructure and give us valuable feedback.
What is the latest version of OrbTK exactly?
Florian: OrbTK is a modern, native open source UI framework for Rust. To put it simply, a UI framework is a kind of “construction set” for developers that can be used to implement interfaces. Similar frameworks include Flutter, Angular, Qt and WPF. Developers can simply copy the predefined building blocks and adjust their properties to reflect the requirements of their UI.
So, what’s your current status?
Florian: We’re currently working hard on the foundations and the API for OrbTK. In principle, we’re far enough along for smaller building blocks, such as buttons, texts and text fields, to be used to implement smaller applications. So we’ve already created a calculator with OrbTK, for example. However, it’s not suitable for productive use in its current form. But this is set to change over the next few months.
And what do you have planned for the future?
Florian: You can follow the current plan and development of OrbTK using the initial milestones, which can be seen in the Redox Gitlab. We’re planning the next release for the second quarter of 2019. This should run on Redox OS, Linux, macOS, Windows and in a browser.
As Ergosign recognized the potential of Rust and OrbTK, our project received additional Focus Time, which of course I was very happy about and gave me more opportunity to pursue the development.
Where can I find out more about OrbTK?
Florian: You can find information about its current status and all resources in the GitLab . There’s also a release plan and detailed explanations for all releases.