Lucio Franco, contributor to Tonic and the asynchronous Rust ecosystem, discusses the challenges of async Rust, his plan for getting a job in distributed databases, avoiding power dynamics in the Tokio team, problems in working on open-source in the corporate world, and why he encouraged a collaborator to go on without him.
Tonic is a native gRPC implementation in Rust that simplifies building gRPC servers and clients for users new to async Rust development.
Lucio Franco shared his journey with Rust, from falling in love with the language in college to creating Tonic, the first production-ready library for async Rust.
Deep dives
Overview of Tonic
Tonic is a gRPC library that provides client-server code generation and allows for easy communication between client and server using the gRPC protocol. Its main goals are to be ergonomic and efficient, specifically targeting users who are new to asynchronous Rust development. Tonic is a part of the Tokyo project, which is a collection of tools that work well together and are widely used in the ecosystem.
The History of Async Rust and Tokyo
Rust 1.0, released in 2015, aimed to reduce the standard library size, making package management easier and allowing users to innovate without depending heavily on the standard library. At the same time, Tokyo, an asynchronous networking library, was being developed as a third-party solution to leverage the new async capabilities of Rust. Tokyo eventually became a popular library used in various tech companies and played a significant role in the story of asynchronous networking in Rust.
The Origin Story of Tonic
Lucio Franco, the guest in the podcast, shared his journey with Rust, starting from his college days, where he fell in love with the language. He then discovered distributed systems and databases and wanted to get involved. Lucio's path led him to Tokyo, where he began contributing and eventually joined a company that used Rust, focusing on building a new Rust service. This experience inspired Lucio to create Tonic, a library that aimed to make RPC networking in Rust easy and ergonomic. After putting in a lot of effort and late nights, Tonic became the first production-ready library for async Rust.
Challenges of Open Source Maintainers
Lucio discussed the challenges faced by open source maintainers, including the lack of positive feedback or recognition for their work. Most feedback tends to be negative, with users reporting bugs or issues. Maintainers often face a heavy burden of support requests and have to balance their open source responsibilities with other priorities in life. There can also be guilt associated with not being able to address every issue or pull request. The absence of funding or financial support adds to the challenges faced by open source maintainers, who are essentially providing high-quality work without adequate compensation.
Tonic is a native gRPC implementation in Rust that allows users to easily build gRPC servers and clients without extensive async experience. Tonic is part of the Tokio stack, which is a library that provides an asynchronous runtime for Rust and more tools to write async applications. Today, Lucio Franco (@lucio_d_franco) of Turso joins the podcast to discuss his unique experience maintaining Tonic and contributing to the asynchronous Rust ecosystem.
Contributor is looking for a community manager! If you want to know more, shoot us an email at eric@scalevp.com.