My experience with Rust Taiwan community in COSCUP 2019

Sunshine, blue sky, and sprinkles of rain — such diverse weather on August 16th-17th echoed the lively atmosphere at NTUST in Taipei, where the COSCUP was held. Participating in the conference, Rust Taiwan community hosted the “Everything in Rust” track with 11 talks, which were relevant to Rust. Speakers came from all over the world, including India, Netherlands, China, Hong Kong, and Taiwan, representing for some of the top influencers in the global Rust community. With more than one thousand attendees in COSCUP, it was the first time for these hundreds of people encountered the efflorescence of the Rust programming language.

venue


Preface

COSCUP is the biggest open source conference in Asia, as for each year, more than a thousand participators and hundreds of speakers join the great event. COSCUP is a platform for communities. This year, about thirty open source communities constituted the symposium — each community hosted their own track, so the community reviewed the proposals and arranged the agenda of the track by itself.

I was a speaker last year, so a thought came in my mind: why not give it a whirl to be a host this year? In addition, as a member of Rust Taiwan and a devout Rustacean, who wants to promote the merits of Rust, it was incumbent upon me to apply to be one of the community coordinators in COSCUP. So I became the host, and led Rust Taiwan setting up all things for the track, “Everything in Rust.”


Rust Taiwan had several times of meetups to discuss the track. Who to invite as speakers? What topics to cover about? How to arrange resources? Rust Taiwan is still a small community, just like other Rust communities in the world, but given to efforts by the members, everything still went well.

As the coordinator, I needed to find speakers. I wanted to make the track the best and gave the audiences an unforgettable experience, so I tried to invite outstanding engineers to give talks. It was not as easy as I thought. There were some anecdotes, which will be described in the following passage, during the time I was finding speakers.

Alright! This is how the story started.


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.

rust-tw/coscup2019

1st talk: The Rust manual for web developers

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


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


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.


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

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


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: 關於生命週期的一點事兒


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


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 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


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 開發實例


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


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


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.


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


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 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’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.


Conclusion

It was interesting but also hard to be a host at a conference. I am so honored to invite these wonderful speakers. It’s my pleasure to work with the Rust Taiwan community. I think we all did a good job at COSCUP 2019. I cannot hide the sheer joys on my face since I am so proud of these things.