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
Explore this link on the map →related reading
- Rust vs go better together | spf13spf13.com
- Rewriting Bun in Rust | Bun Blogbun.com
- Why Turborepo is migrating from Go to Rust - Vercelvercel.com
- NYSRGnotes.ekzhang.com
- Reddit - Please wait for verificationreddit.com
- How Discord Stores Trillions of Messagesdiscord.com
- Why async Rust?without.boats
- Learnings from 100K Lines of Rust with AI | Cheng Huang’s cornerzfhuang99.github.io
- Rust – a concise overview of the modern programming language coders love - K&Ckruschecompany.com
- Async Rust Is A Bad Languagebitbashing.io
- Frequently Asked Questions (FAQ) - The Go Programming Languagego.dev
- Notes on structured concurrency, or: Go statement considered harmful - njs blogvorpus.org