Effective Programmer

Real advice to move your career forward as a software engineer from people who have been around.

Follow publication

Rust vs Go: Battle for the Backend

Naveed Khan
Effective Programmer
8 min readJan 11, 2025

--

A crab and a gopher walk into a server room. The crab starts flexing its zero-cost abstractions, while the gopher shows off its goroutines. Welcome to backend battle of 2025, where two modern champions are duking it out for supremacy.

While I still stand behind my previous argument of using TypeScript for backend systems if you are starting new, the truth is when we needed super high performance in production, the answer was either Go or Rust.

In this post I am going to try and share some of the comparison to help you decide. Hopefully in a way that won’t start another war in the comments section. At the very least I am hoping not to get the hate mail I got for posting about PHP.

Let’s dive into what makes each of these backend behemoths tick, and more importantly, why you might choose one over the other for your next server-side project.

Performance: The Speed Dating Game 🏃‍♂️

Alright, let’s talk performance — everyone’s favorite topic to argue about on Reddit! I had Claude pull some data for me comparing Rust and Go in a real-world scenario: a JSON-processing HTTP server (because let’s face it, that’s what most of us are building) and here is what it got:

Before you dig too deep into this chart, let me remind you, the thing about performance metrics — they’re like dating profile pictures. Sure, they tell part of the story, but the real test is how these languages perform in your specific use case. Rust might win the synthetic benchmarks, but Go’s simplicity could mean faster development and fewer bugs in your particular situation.

Binary Size: The Weight Class 📦

Remember that friend who started going to the gym and can’t stop talking about losing weight? Rust is that friend. Its binaries are typically 3–4x smaller than Go’s, mainly because Rust doesn’t pack a garbage collector in its suitcase. In our benchmark, Rust’s binary came in at a svelte 3.2MB, while Go’s was living its best life at 11.5MB. But hey, in an era of terabyte drives, who’s counting megabytes, right? (Embedded developers, put those pitchforks down!)

HTTP Performance: The Speed Round 🚀

When it comes to raw HTTP request handling, Rust flexes its zero-cost…

--

--

Published in Effective Programmer

Real advice to move your career forward as a software engineer from people who have been around.

Written by Naveed Khan

Technology leader, entrepreneur and angel investor. Head of Engineering at Blitz.gg. I write about programming, software engineering and career development.

Responses (6)

Write a response