Why Discord is switching from Go to Rust
Rust is becoming a first class language in a variety of domains. At Discord, we’ve seen success with Rust on the client side and server side. For example, we use it on the client side for our video encoding pipeline for Go Live and on the server side for Elixir NIFs. Most recently, we drastically improved the performance of a service by switching its implementation from Go to Rust. This post explains why it made sense for us to reimplement the service, how it was done, and the resulting performance improvements. Discord is a product focused company, so we’ll start with some product context. The service we switched from Go to Rust is the “Read States” service. Its sole purpose is to keep track of which channels and messages you have read. Read States is accessed every time you connect to Discord, every time a message is sent and every time a message is read. In short, Read States is in the hot path. We want to make sure Discord feels super snappy all the time, so we need to make sure Re
Rust is becoming a first class language in a variety of domains. At Discord, we’ve seen success with Rust on the client side and server side. For example, we use it on the client side for our video encoding pipeline for Go Live and on the server side for Elixir NIFs . Most recently, we drastically improved the performance of a service by switching its implementation from Go to Rust. This post explains why it made sense for us to reimplement the service, how it was done, and the resulting performance improvements. The Read States service Discord is a product focused company, so we’ll start with
related reading
- Rewriting Bun in Rust | Bun Blogbun.com
- Rust vs go better together | spf13spf13.com
- How (and why) we rewrote our production C++ frontend infrastructure in Rustblog.nearlyfreespeech.net
- Why Rust - Rust for C-Programmersrust-for-c-programmers.com
- Reddit - Please wait for verificationreddit.com
- Why Turborepo is migrating from Go to Rust - Vercelvercel.com
- A data race that doesn't compilecorentin-core.github.io
- How Mozilla’s Rust dramatically improved our server-side performance | Figma Blogfigma.com
- Frequently Asked Questions (FAQ) - The Go Programming Languagego.dev
- Rust – a concise overview of the modern programming language coders love - K&Ckruschecompany.com
- Why async Rust?without.boats
- (Re)writing an interpreter in Rust – Danny van Kootendannyvankooten.com