← Back to list

Learning gRPC— Interface Description Languages — History

What can be said at all can be said clearly, and what we cannot talk about we must pass over in silence.  — Ludwig Wittgenstein

Deepak Sharma in Navigating CNCF Landscape · 2025-01-04 09:50 · 0 claps · 3.3 min read paywalled
#grpc #apache-thrift #asn1 #interface-definition #language
Open on Medium ↗
Wiki topics: CRY · Crypto & Web3 EDU · Education & Learning

Learning gRPC— Interface Description Languages — History

What can be said at all can be said clearly, and what we cannot talk about we must pass over in silence. — Ludwig Wittgenstein

Photo by Pavan Trikutam on Unsplash

Photo by Pavan Trikutam on Unsplash

Since the launch of Protocol Buffers and GRPC, we have seen a sharp rise in interest in and adoption of Interface Description Languages across many organizations.

Given the rise of microservice architecture and Cloud Native Applications and a new era of computation, GRPC and Protocol Buffers have gained unmatched popularity. The wide variety of languages supported by the framework and a thriving ecosystem have made it easy for any organization to adapt and start using it in production-grade applications.

Google, Netflix, Uber, Square, IBM, Cisco, Juniper Networks, Docker, CockroachDB, Dropbox, Yik Yak, VSCO, ngork and many other companies have used gRPC in their production successfully.

CNCF projects and standards have shown real use cases where projects like kubelet and container Storage Interface have used it successfully in the Open Source landscape.

History

Since the beginning of distributed computation and communication across networked devices, a common theme has been running around about the efficient packing of data on wire for transmission to save time and space, and defining an interface over which machines could communicate with each other. A lot of low-level details are abstracted and taken care of by communication protocols like TCP and HTTP but the applications still need a uniform way of describing the communication patterns, contracts and message formats, this is handled by Interface Description Languages.

Interface Description Languages have been around for a while now, dating back to 1969, when an extensive amount of progress was made in the development of Remote Procedure Calls and network communication.

The earliest reference for remote communication in IETF I could find was in RFC 11 which defines Host-Host Software Procedures dating back to 1969

[embed]RFC 11: Implementation of the Host - Host Software Procedures in GORDO Implementation of the Host - Host Software Procedures in GORDO (RFC 11, ; obsoleted by RFC 33)datatracker.ietf.org

which got superseded by RFC 33

[embed]RFC 33: New Host-Host Protocol New Host-Host Protocol (RFC 33, )datatracker.ietf.org

Similarly, I could find the earliest discussions about data serialization and deserialization in IETF RFC 5 dating back to 1969

[embed]RFC 5: Decode Encode Language (DEL) Decode Encode Language (DEL) (RFC 5, )datatracker.ietf.org

With the start of network communication, we can see that interest was building up in making different machines communicate with each other.

The term Remote Procedure Call was popularised by Bruce Jay Nelson in his Ph. D. thesis titled Remote Procedure Call published in the year 1981.

[embed]Remote Procedure Call Bruce Jay Nelson Palo Alto Research Center.pdf Ph. D. Thesisdrive.google.com

Later as networked systems grew adoption, Sun ONC Protocol was proposed as RFC 1050 in 1988. This description has a clean representation of Remote Procedure and

[embed]RFC 1050: RPC: Remote Procedure Call Protocol specification This memo specifies a message protocol used in implementing Sun's Remote Procedure Call (RPC) package. This RFC…datatracker.ietf.org

Leading the innovation ahead Object Management Group released a visionary idea for communication across truly heterogeneous systems, systems on different networks, different CPU architectures, different Operating Systems, and different programming languages named Common Object Request Broker Architecture abbreviated as COBRA in 1991.

Following this suit, we see innovation from Mircosoft with the introduction of DCE/RPC and Microsoft Interface Definition Language in the late 1990s

Since then communication across networked devices has grown and we have seen WSDL specification in 2000 as a collaboration between Ariba, IBM and Microsoft. Post 2000 we see companies like Facebook, Alibaba, Google, and Cisco open-sourcing their internal RPC stacks.

List of a few noticeable IDL

ASN.1 — The great grandfather in the IDL ecosystem, developed by the International Telecommunication Union Telecommunication Standardization Sector, is a data type declaration notation— 1984

dubbo — donated to Apache Software Foundation by Alibaba — 2017

thrift — donated to Apache Software Foundation by Facebook — 2008

avro — developed by Apache Software Foundation as part of Apache Hadoop — 2009

Cap’n Proto — developed by Kenton Varda former maintainer of Protocol Buffers — 2013

FlatBuffers — developed by Wouter van Oortmerssen and Open Sourced by Google — 2014

FIDL • Fuchsia IDL — developed by Google for Fuchsia OS to be used by Inter-Process Communication

WSDL • Web Services Description Language — developed by Ariba, IBM and Microsoft — 2000

smithy — developed by Amazon, smithy 2.0 is a recent iteration — 2024

MIDL • Microsoft IDL — developed by Microsoft based on DCE/RPC currently in its 3.0 iteration— Late 1990s

This list is not exhaustive but a mere snapshot of a few famous protocols some due to their historical importance such as ASN.1, and some for their trendiness such as Protocol Buffers.

[embed]Learning gRPC — Interface Description Languages — Heterogeneous Systems and Interface If a lion could talk, we would not understand him. — Ludwig WittgensteinNext Article | medium.com


메타데이터
post_id
e2bb35e7edfa
slug
learning-grpc-interface-description-languages-history-e2bb35e7edfa
url
https://medium.com/navigating-cncf-landscape/learning-grpc-interface-description-languages-history-e2bb35e7edfa
canonical_url
https://medium.com/navigating-cncf-landscape/learning-grpc-interface-description-languages-history-e2bb35e7edfa
author_url
https://medium.com/@sadysnaat
status
ok
fetched_at
2026-07-21 10:55:13