Héctor got a lot of attention for
iced when he announced it on reddit in September, and deservedly so. It’s a nicely designed framework inspired by Elm; it provides the necessary abstractions to build a GUI while leaving an open interface for any developer to provide their own component and rendering logic. Since joining our team Héctor has been hard at work continuing to develop
iced and prove it out as a cross-platform GUI framework for Rust.
With that said, we want to show some progress. Today
iced is releasing its first major update.
Today’s update to
iced brings a variety of improvements:
- Support for scrollable content
- A text input component
- A much faster flex layout engine
- Custom font support, and font caching
- HiDPI support
asyncAPI for UI messages
With these changes, we’re also releasing a new example program: the classic To-do list MVC application. This example demonstrates
iced‘s capabilities and viability as a GUI framework.
Try out the To-do MVC on your computer!
We’re moving on to building Cryptowatch software with
Héctor is working with Clark Moody, a Bitcoin OG who also joined our team earlier this year after Kraken’s acquisition of Interchange. If you don’t know who Clark Moody is, you’re probably new around here. He is known for RTBTC, later acquired by Blockchain, as well as his namesake Bitcoin charts website which has been operating since 2011. Clark is basically the father of Bitcoin charting sites. More recently he has also been active in the Rust community, contributing to
Together we will be developing
iced further while using it to build prototype Cryptowatch native applications which we ship to our clients. Using the library to build an alpha-level application released to customers will be a great way to test it out and find its limits. It will also inform its future roadmap and motivate development of that roadmap.
The vision is a framework which allows anyone to develop applications with the visual and interactive qualities of web applications, but with the stability, efficiency, platform portability, and developer-happiness offered by Rust.
The target for our first native release is a simple grid-based price monitoring application that can display an arbitrary set of markets – something you’d want to set up and keep open on a monitor all day. We’re keeping scope small so we can ship quickly, while also tying in a few further core improvements to
iced as we go along:
- Animation support
- Viewport-dependent layout (“responsive” layout)
- Keyboard navigation for input elements (Tab, Enter, etc)
The application will ship on Mac, Windows, and Linux.
Final thoughts on the Rust community
The Rust GUI and game dev ecosystem has been picking up a lot of momentum; it seems a lot of smart people have realized that Rust is an awesome language for this kind of stuff. Its speed, memory safety, and expressive syntax are a perfect combination for complex, graphics-heavy software. This healthy ecosystem is what enabled
iced in the first place.
Our goal with sponsoring
iced development is to put some extra fuel into one of the more promising projects in this space and push hard to reach the tipping point where others find it “ready to use”.
I personally find it depressing that most new “native” software applications these days are written in a dynamically typed scripting language, are deployed as a self-contained web browser, and have accustomed end-users to substantial memory footprints. I think Rust can offer the world a brighter future.