Blog Infos
Author
Published
Topics
, , , ,
Author
Published

 

When you’re building modern apps — whether mobile, web, or backend — data serialisation matters a lot more than you think.
Two options often come up: JSON and Protocol Buffers (Proto).

Let’s break it down in a way that actually matters for real-world projects — and yes, we’ll back it up with some actual numbers 📈.

JSON vs Proto

Before we dive into use cases, here’s a quick intro:

  • JSON is like your favourite old t-shirt — comfy, easy, everyone knows it. It’s text-based, human-readable, and universal.
  • Proto is like a high-performance racing suit — not as comfy for everyday stuff, but extremely fast and efficient when you need it. It’s binary, not directly human-readable, and you need a bit of setup.

The Real numbers: Proto vs JSON

We ran a benchmark to see how they perform when serialising/deserialising data for 100 users and 1000 users.
Here’s what we found:

 

 

What these numbers tell us:

  • Proto is 3x smaller in size compared to JSON.
  • Proto serialises data more than 10x faster than JSON for small payloads (100 users).
  • Deserialization times are close for both at larger scales, but Proto still slightly wins.
  • As the data size grows (1000 users), Proto maintains smaller size, but JSON’s serialization time gap narrows slightly.

When to Use JSON

✅ Public APIs
Imagine you’re building a weather app or an e-commerce site API.
You want other developers to use your API without jumping through hoops. JSON is perfect here — everyone knows how to work with it.

✅ Quick Prototypes & Side Projects
Starting a side project over the weekend? Need to move fast and debug easily?
Stick with JSON. No extra tooling needed.

✅ Human-Readable Configurations
Config files, simple settings, or anything developers might need to manually tweak — JSON wins because you can open it in any text editor.

When to Use Proto

✅ High-Performance Mobile Apps
You’re building a ride-sharing app or chat application where network speed matters and every byte counts?
Proto is your best friend. Smaller size = faster transfers = better user experience.

✅ Microservices Talking to Each Other
Inside your backend architecture (where you control everything), Proto’s speed and small size make it ideal.
Who cares if humans can’t read it when services talk machine-to-machine?

✅ Realtime Systems
Gaming, stock trading, live scores, or anything streaming — you need super fast serialisation/deserialisation. Proto shines here.

✅ IoT Devices
Tiny sensors sending data over constrained networks?
You definitely want the smallest payload possible.

Job Offers

Job Offers

There are currently no vacancies.

OUR VIDEO RECOMMENDATION

,

Combining Flutter with Protobuf to build a powerful mobile app

In this session, I will explain how to use Protobuf in a Flutter app to communicate between client-server. I will also discuss my learnings while using Protobuf in Flutter, and what are the pros and…
Watch Video

Combining Flutter with Protobuf to build a powerful mobile app

Angga Dwi Arifandi
Mobile Engineer
ING Netherlands

Combining Flutter with Protobuf to build a powerful mobile app

Angga Dwi Arifandi
Mobile Engineer
ING Netherlands

Combining Flutter with Protobuf to build a powerful mobile app

Angga Dwi Arifan ...
Mobile Engineer
ING Netherlands

Jobs

Final Thoughts: It’s Not One or the Other

You don’t have to marry one format forever. Many real-world systems use both.
Pick what makes sense based on who’s consuming your data and what the priorities are (speed, size, readability).

Rule of Thumb

If humans will see it, prefer JSON. If machines will process it, prefer Proto.

Follow for more blogs and let’s connect

🔗 LinkedIn
🔗 Twitter
🔗 Book a 1:1 session

This article was previously published on proandroiddev.com.

Menu