RustFest: Barcelona

RustFest Conference in  Barcelona came to an end, so here is a summary of it.

Saturday

Saturday started with a keynote about the benefits and pitfalls of Rust adoption. The economic gain from the safety Rust offers is now beyond question but some new potential problems are just around the corner. One of the most interesting challenges discussed was what will happen and how to react when the language becomes mainstream and it won’t be used just by a group of loyal enthusiasts but also by unaware developers who happened to join a project based on this sometimes very demanding and difficult language.

A big surprise was to hear about the process of Rust adoption in China which sadly isn’t going well. All the beloved Rust tools like cargo, rustup, and crates.io are literally unusable there because of the Great Firewall. What’s worse the Chinese online Rust community is heavily fragmented because of the monopoly and constrains of certain web communicators.

The first day concluded with a workshop session. I was lucky to book a place on the introduction to embedded development in Rust which received a great deal of interest, causing a long wait-list to emerge. In my case, bare-metal programming with Rust on LPC845 board turned out to be a partial success: the LED was blinking, the state of the button remained a secret.

Sunday: Strange Surprise

Sunday started with a great talk about crowd-sourced, Rust-based train schedule information service from South Africa. What stuck to my mind was that there was no need to back up the state of the service in a database for the possibility of a crash, because the service simply never crashes and it’s only restarted every couple of months because of updates. Great advertisement for Rust! Not to mention the memory usage after switching from Kotlin to Rust was reduced by the factor of 40.

Strange as it may sound RustFest day 2 included also a live music concert! The music was generated using commands of a simple DSL typed by the presenter in the browser running a Rust+WebAssembly web page of his creation.

The Best Comes to Those Who Wait

The conference took place just after the long-awaited async/. await feature had been stabilized so of course, this hot topic was also present in the program. First, the audience learned about the basics of async-std which is, as the name suggests, asynchronous implementation of the Rust standard library, in which not a single potentially long-running operation is blocking until specifically asked to. Just after that, we received a deep insight into how the Rust compiler optimizes the async functions and makes them zero cost.

The day ended with another workshop session and this time I was implementing a 2D game starring (obviously!) a crab – the Rust mascot.