Talks Review

Approaching the time of the first talk, more and more listeners slowly congregated in the venue. It never crossed my mind to expect so many people attended the “Everything in Rust” track since it is an unpopular language after all. However, I thought Facebook Libra does help attract more users of Rust.

All slides are on Github. Copyright by the speakers.

1st talk: The Rust manual for web developers

Original Title: 給 Web 工程師的 Rust 上手指南

“Who uses Rust?” asked by Andy Shu

The track was started by the talk, “The Rust manual for web developers” by Andy Shu, the founder of Immux. He delivered a brief introduction about Rust and gave a live coding example to run a website by the Yew framework powered by Rust. Of course, live coding was the cynosure of all eyes. It was really impressive!

I have befriended Andy at Hong Kong Open Source Conference 2019. We are both speakers, and all gave talks about Rust. He is very brave that he likes to demonstrate a live coding in each talk. It’s very admirable.

2nd Talk: Use Rust to Build a Distributed Transactional Key-Value Database

Liu Tang

In the second talk, Liu Tang, the chief architect of PingCAP, shared why PingCAP chooses Rust, how they use Rust to build the storage, to support replication across geographically distributed data networks, to implement an RPC framework, to inject failure for test, and to monitor the key metrics of the whole cluster. He also introduced their Rust training course to help people learn Rust and build their own distribution system.

There is an anecdote that Liu Tang could not have a self-guided tour in Taiwan due to China’s policy (China is unfriendly to Taiwan). Therefore, Liu Tang had no choice but to come to Taiwan by joining a tour group, and he could only have a few hours to leave the group. As a result, I only met him for just an hour, but I could still feel his enthusiasm for programming.

Liu Tang and I

3rd Talk: Contribute to open source when eating fast noodles (Take RustPython for example)

original title: 吃個泡麵，順便開源貢獻 (以 RustPython 為例)

Fishball 洪慈吟

The third talk was given by Fishball (洪慈吟). She shared her experience of participating in the open-source project, RustPython, which uses Rust to implement the interpreter of Python. She demonstrated the working flow of the project on Github, providing an easy-understanding example for people who want to join an open-source project.

4th Talk: The relationship between lifetimes and dataFlow

original title: 關於生命週期的一點事兒

Rnic

The life cycle is always a nightmare for beginners of Rust. In the fourth talk, Rnic (鄭弘昇) explained the underlying mechanism of the new life cycle in Rust, which is empowered by data flow analysis and Polonius, the novel Rust borrow checker.

5th Talk: Serverless Web Service in Rust

Shing Lyu

Serverless is now the toast of the town. Many corporations and organizations adopt serverless services to reduce the developing process as well as maintaining cost, which leads to an entirely new concept — Microarchitecture. Shing Lyu is a backend software engineer at DAZN. In the fifth talk, he introduced what is serverless and its merits. Briefly showing AWS Lamda service, he demonstrated how to use Rusoto, the AWS SDK for Rust, to build a serverless service in Rust.

Shing Lyu’s new book, “Practical Rust Projects”

Shing Lyu used to work in Mozilla developing the Servo browser, which is Mozilla’s novel browser engine written in Rust and emphasizing on parallel processes and memory safety. I had once wanted to join an open-sources project. Then I asked Mozilla Taiwan community for help, and he was a good sport to mentor me to involve in the Servo project. Given his first help and my following efforts, I even became a collaborator of Servo.

6th Talk: Get Started with Rust and WebAssembly

Diwanshi Pandey

WebAssembly is a brand new web technology with massive potential. It will have a significant impact on how web applications are developed in the future. In the 6th talk, Diwanshi Pandey, a Mozilla Tech Speaker and an Application Developer at RedHat, started with understanding web assembly and transition to how it is used with high-level languages like Rust. She also provided demos using Rust and WASM Javascript APIs.

7th Talk: From JS to Rust — examples of a cross-platform library between web and mobile

Original title:從 JS 到 Rust — web/mobile 跨平台 library 開發實例

Felix Chen

Continuing Diwanshi’s talk about WASM, Felix Chen gave a discourse upon some implementation examples of web assembly. As a frontend developer, he shared his own experience that creating a cross-platform library for web and mobile. He indicated that WASM with Rust is surely faster than pure JavaScript by showing charts, though sometimes WASM just wins a little since the V8 engine is indeed powerful.

Worthy to mention, Felix is the designer of the logo of Rust Taiwan. Thanks for his contribution!

8th Talk: WhratNNLeek: A Spiking Neural Network Project by Rust

Bali Hsu

The eighth talk was given by Bali Hsu, chief research officer of Libgirl. WheatNNLeek is an open-source project developed by the artificial intelligence team of Libgirl based on Rust. The goal of the project is to develop a learning algorithm for the third generation “SNN spiking neural network” and possible future applications. This lecture briefly introduced the concept, development status, and the potential of SNN, as well as the function and usage of the WheatNNLeek project. He shared experiences of using Rust to implement neural networks.

9th Talk: Our future in Rust

Weihang Lo

Future is of importance to asynchronous programming in Rust. As Weihang Lo mentioned in the talk:

Future is the key component of Rust async world.

Weihang Lo is the author of rust-algo.club as well as a full-stack developer. In this talk, he introduced the future’s concept — including futures, tasks, wakers, and executors.

the flow of future (from Lo’s slides)

10th Talk: Use PEG to write a programming language parser

Yoda Lee

Parsing expression grammar (PEG) compared to the more common LL and LR series parser like Lex/Yacc has a simpler intuitive rule, which is clearer than the definition of regular expression and can be quickly set in a short time. Armed with PEG, it is easy to set up a language syntax and a corresponding parser.

In this talk, Yoda Lee shared his story about trying to implement the C language PEG parser. He stated the merits of PEG as well as comparing PEG and CFG and pointing out the possible shortcomings and limits of PEG.

11th Talk: Concurrency in TiKV

Jay Lee

Jay Lee is a senior engineer in TiKV. He talked about the design and implementation of concurrency modules in TiKV, including a naive thread pool to a complicated task queue, work steeling policy and actor-like concurrency. He also discussed efforts they did to improve performance in concurrent Rust such as metrics and messages.

COSCUP Keynote: Five year on the Rust core team

Steve Klabnik

Steve’s talk was COSCUP’s keynote which was not a part of “Everything in Rust” track, but the talk is about Rust. It is a remarkable lecture that reveals the principle and the future of Rust governance. Shall Rust chooses BDFL (Benevolent Dictator For Life) or core team to make decisions? Some projects adopt BDFL just like Python and BDFL has its merits — it is simple and consistent. However, the founders of Rust thought Rust belongs to everyone, which can be taken to mean that all people have a chance to voice for their ideas, and therefore, they choose the core team mechanism. Introducing the core team, RFC and working groups of Rust, Steve stated that there is still room for improvement. In the end, he said he hoped there would be a foundation for Rust so that Rust can work even well, though there would be abundant jobs if there had been one.