Introduction to Protocol Buffers (gRPC Tutorial using buf) with Golang/Ruby Examples

preview_player
Показать описание
Welcome to this System Design video in Golang, in this video I introduce Protocol Buffers to you, the basics required for starting to use it with Golang, including relevant tools like a linter called "buf" and a formatting tool called "clang-format".

== What are Protocol Buffers?

Protocol Buffers, also known as Protobuf, is a data format used to serialize structured data. It can used by programs to communicate with each other over a network or for storing data. It uses an interface description language that describes the structure of some data and includes a collection of program to generates source code from that description.

== What Programming Languages are supported by Protocol Buffers?

Officially, the supported programming languages are: C++, Java, Python, Go, Ruby, Objective, C# and JavaScript. The community supports Ballerina, C, Dart, Elixir, Erlang, Haskell, Perl, PHP, R, Rust, Scala, Swift, Julia and Nim.

== Relevant links

== All Go/Golang Playlists

== Socials

00:00 - Start
00:12 - What are Protocol Buffers (protobuf)?
00:31 - What are the Programming Languages supported by Protocol Buffers (protobuf)?
00:56 - What are the alternatives to Protocol Buffers (protobuf)?
01:31 - Example of Protocol Buffers (protobuf) using Go/Golang
03:14 - Using buf to manage Protocol Buffers (protobuf)
04:36 - Working with Protocol Buffers (protobuf) with buf
06:16 - Linting Protocol Buffers (protobuf) with buf
07:34 - Types in Protocol Buffers (protobuf)
08:12 - Options in Protocol Buffers (protobuf)
08:57 - Generating Protocol Buffers (protobuf) code using buf
10:29 - Formatting Protocol Buffers (protobuf) using clang-format
11:46 - Interoperability example using Protocol Buffers (protobuf) in Go/Golang and Ruby
13:48 - Conclusion

=== Who am I?

Hello👋🏼! I'm Mario, a Hands-on Software Architect and Lead Backend Engineer with more than 16 years of professional experience building all kinds of software including on-premise Industrial Automation Systems, Linux Accessibility Desktop and Browser Components as well as Distributed Advertising Microservices.

Every week I will share with you different topics I've learned while working for small startups and large companies including the processes I've followed over the years for successfully delivering complex enterprise systems from start to end.

Subscribe if you like Software Development, Software Architecture and System Design!

Keep it up. Don't give up!

#golang #grpc #systemdesign

=== Our Vlog Channel

=== Affiliate links

DISCLAIMER: Some of the links shared above are affiliate links. As a member of these affiliate programs, I earn a small commission from your purchases at no additional cost to you. Thank you in advance for your support!
Рекомендации по теме
Комментарии
Автор

Awesome! Looking forward to see a complete gRPC series soon.

pooladkhay
Автор

@Mario Carrion Thanks for the great video, one small addition - currently buf config init has been replaced by buf mod init.

megadrocks
Автор

I'm waiting for this series so long. Thq will follow to complete.

tony-go-code
Автор

That awesome ! Thanks so much from Viet Nam

Peter-xnbk
Автор

Nice video, thank you! I recently learned about buf but haven't used it; seems like a nice tool

farzadmf
Автор

Fantastic video... I would definitely pay $ for more... Comment, at 3:24, you say the command is 'buf config init'. I believe the new cli command is 'buf mod init'.

vincentyoumans
Автор

This video is a mess. So I understand what you are trying to show here, but the layout is not clean for someone without experience in this realm. Bouncing around with different languages is jarring.

codelinx