Protocol Buffers Crash Course

  Рет қаралды 252,844

Hussein Nasser

Hussein Nasser

Күн бұрын

Пікірлер: 240
@hnasr
@hnasr 3 жыл бұрын
Learn the fundamentals of the backend, scaling and load balancing with my Introduction to NGINX udemy course nginx.husseinnasser.com
@Andrey-il8rh
@Andrey-il8rh 3 жыл бұрын
This was one of the most energetic talks I've heard In a while. Keep it up man, the energy and a vibe you put inside your tutorials is addictive 👍
@apollosilith9026
@apollosilith9026 3 жыл бұрын
This was probably the best dev tutorial I've ever seen. Your energy and humor is infectious; You turned what could've been a frustrating tutorial into something easy, useful, and fun to watch. Well done!
@VasanthTulasi
@VasanthTulasi 2 жыл бұрын
I don't usually put up a comment but I have to appreciate your humorous approach to explaining these complex technical things. You just earned a subscriber :)
@hnasr
@hnasr 2 жыл бұрын
Thank you dear! Enjoy the content
@alexeyshevelyov1163
@alexeyshevelyov1163 3 жыл бұрын
Personally, rather than script reading videos (with the eyes of the presenter running from left to right) - with this you feel like you drinking a beer with a friend that is telling you all this cool stuff, paying attention to each and every detail, trying to make sure you understand. This is not to say that other videos are not pursuing the same goal. This is to emphasize how much more personal touch this style has and from reading the comments, you can tell it resonates with folks a lot. Again, huge thanks and keep it up!
@cristianoseixas2417
@cristianoseixas2417 3 жыл бұрын
Vídeo sensacional, não tem conteúdo melhor explorando protobuffer no youtube. Muito obrigado
@RobbyLuisa
@RobbyLuisa 4 жыл бұрын
Dude, I rarely (never) comment on YT videos. That being said, I watch a lot of tech / dev tutorials... I really enjoy your humorous way of going through the exercise and explaining the different concepts. As already suggested in the comments below: if you continue, I know you'll end up a very popular channel for these type of tutorials. Well done mate! Cheers from Germany.
@hnasr
@hnasr 4 жыл бұрын
Robert Rottschalk Robert! I really appreciate you taking the time to comment it means so much. Thank you for your kind words, glad you are enjoying the content and cheers to all my subs from Germany 🇩🇪
@jaimerios1378
@jaimerios1378 3 жыл бұрын
What Robert said. Good video :)
@jaxtynpierce5731
@jaxtynpierce5731 3 жыл бұрын
i guess im asking randomly but does any of you know of a trick to log back into an Instagram account? I was dumb forgot the login password. I would love any tips you can give me!
@alikhansharapat9933
@alikhansharapat9933 Жыл бұрын
and now it became very popular channel :)
@socialblade7751
@socialblade7751 4 жыл бұрын
The best yt channel, real life programming .. thx
@hnasr
@hnasr 4 жыл бұрын
SocialBlade appreciate it thanks 😊
@zebcode
@zebcode 4 жыл бұрын
Wow this is the video I've been waiting for. I really wanted to know the differences between JSON and protobuff. Really looking forward to GRPC!!!
@hnasr
@hnasr 4 жыл бұрын
Kiran Randhawa thanks Kiran! That was my purpose as well. I don’t like to use a tech without knowing why it was invented
@tobiasbergkvist4520
@tobiasbergkvist4520 4 жыл бұрын
Extracting protobuf uses a lot more cpu than just parsing JSON. This is very noticable when working with map data. Mapbox Vector Tiles (MVT) uses protobuf under the hood - and compared to sending GeoJSON, a lot more cpu power is required at the client side. At least this is my understanding after doing direct comparisons between MVT and GeoJSON.
@hnasr
@hnasr 4 жыл бұрын
Interesting point, I thought protobuf benefit is faster deserialization ... maybe this is specific use case with mapping data
@BboyKeny
@BboyKeny 11 ай бұрын
Awesome video. Another point that can be made is that protobufs shouldn't be used for really large files (like images) that you don't want to have live in memory. I'm investigating protobufs and I think is a really cool advantage of it having a schema, is that if you have multiple programs, in different languages, talking to eachother. Αnd more programs might be added for which you don't know the language. Then having a shared schema like this is awesome. Compilation can be done with CI and it seems you can change protobufs without having to go through every old project that's using it (by following certain best practices).
@juvi925
@juvi925 3 жыл бұрын
Hussein, Thank you so much for your channel! as a junior backend dev, your content has been a god send!!!
@datapro007
@datapro007 Жыл бұрын
Truly a fine video Hussein. I like your sense of humor. It makes a dry topic almost tolerable. Thank you!
@antoniomasotti8060
@antoniomasotti8060 Жыл бұрын
Great video as always. Regarding the cons, the two you named apply if you're working on small projects / working alone or with a small team. As soon as you have a more complex project or dozens of Devs (of all levels) working on a project or connected projectS sharing the same data, having a schema becomes a MUST an having to maintain an additional file or update a cli much better than not having a Schema.
@tejakdluv
@tejakdluv 4 ай бұрын
To be frank one of the best vid on the internet explained very well
@shynggyskassen942
@shynggyskassen942 8 ай бұрын
If protobuf takes less memory and faster to serialize/deserislize, why we still use JSON?
@fuadcs22
@fuadcs22 5 ай бұрын
Because we still need to have the schema on both sides. Json don't require that. It's just data.
@jindal0001
@jindal0001 Жыл бұрын
I felt it was a long video before I started watching it, but it was fun and really informative. Thanks
@restuwahyusaputra7764
@restuwahyusaputra7764 3 жыл бұрын
Best channel for software engineering, i like this channel, terimakasih husen
@JustinMasayda
@JustinMasayda Жыл бұрын
Thank you for this excellent video, Hussein! One more con of protobuf vs JSON is it's not human readable since it's binary. For certain applications you might want your serialized data to be human readable.
@airnitro9949
@airnitro9949 2 жыл бұрын
I am greatful to GOD that i found this channel.
@BruceCantarim
@BruceCantarim 2 жыл бұрын
The way you teach and explain things is just amazing. Well done! Thank you for this, had to learn protocol buffer quickly for an existing project and this video really got me there.
@natureloverJ
@natureloverJ Жыл бұрын
Good stuff! Big companies like Google, MS, Amazon, and other big wigs. They create lightning speed APIs by optimizing a lot of things. Protobuf is one of that. It helps to achieve the smallest possible data footprint that helps transferring that binary data over the net very fast. Certainly it is much faster than REST or SOAP. Response time gRPC < REST < SOAP.
@MrBagginsDoes
@MrBagginsDoes Жыл бұрын
Dude, best Protobuf tutorial I've seen. To be honest, I am using python while watching you and JS, but you explained it so well, that the language does not matter, just like protobuf :D
@kostyayatsuk2004
@kostyayatsuk2004 3 жыл бұрын
First video of Husseins that I'm watching and gotta say the energy keeps me engaged during moments which in other videos would've been incredibly boring. Definitely gonna take a look at any other videos he produces cause it seems like they would be really good
@EwenMackenzie
@EwenMackenzie Жыл бұрын
good video. Bear in mind to be more concise with what you explain and the target audience. thanks it helped me a lot
@AnothyAtWork
@AnothyAtWork Жыл бұрын
Great video. I really enjoyed your energy while explaining what Proto Buffers are. I now have a good understanding of what Proto Buffers are. Thanks. I'll be checking out your videos.
@pablomoraesdemattos2114
@pablomoraesdemattos2114 2 жыл бұрын
Hello Hussein, my name is Pablo and I'm a student of Control and Automation Engineering at UNISINOS (University of the city of São Leopoldo, Brazil) I'm studying this protocol and I would like to know if you could help me with some information about this technology?
@ryanleemartin7758
@ryanleemartin7758 2 жыл бұрын
love your breakdowns . really good. I actually prefer the proto schema to just blasting json for api calls because even though the json itself doesn't have a schema, I'm still serializing and deserializing to types on server and client which is conforming to a kind of implicit schema (my type system). Now, the code gen does that for me. That's very very nice. It doesn't solve every use case but it solves all of mine!
@david-tracy
@david-tracy 3 жыл бұрын
this is interesting. I wonder why I haven't seen this used yet in any of the react tutorials I've been watching throughout the past months
@ethansherr3281
@ethansherr3281 Жыл бұрын
If you don't like callbacks... you can import { promisify } from 'util' import fs from fs const writeFile = promisify( fs.writeFile ) ... await writeFile('file/path', JSON.stringify({...})
@tambolaking5383
@tambolaking5383 4 жыл бұрын
You went to 16k pretty quickly. Continue doing this and several 💯 k very soon.
@hnasr
@hnasr 4 жыл бұрын
Vrunda ONE thanks for being long time sub! Will do!
@jonarmani8654
@jonarmani8654 3 жыл бұрын
@@hnasr Started from the bottom, now you're ... omg you put out 1 vid / day of actually good software engineering content, how have I not seen you before? So close to 100k my dude, let my subscribe help you inch closer. ☮
@bxrtemp2
@bxrtemp2 3 жыл бұрын
I am generally lazy on writing comment on YT videos/blogs. It was an awesome explanation. I really loved it and eager listen to many more videos from your channel. Thank you
@hnasr
@hnasr 3 жыл бұрын
Thanks for taking the time to write this comment .. I appreciate it ❤️
@voidemon490
@voidemon490 Жыл бұрын
I laughed so many times I had to re-watch the video, 10/10. You're amazing
@arturorodriguez6897
@arturorodriguez6897 2 жыл бұрын
I like the way you express your self . Enjoyed the video and learned at the same time. good one!
@hangchen
@hangchen 3 жыл бұрын
Man I like your style and I subbed your channel after watching your video (this one) for the very first time for 4 minutes
@hnasr
@hnasr 3 жыл бұрын
🙏🙏 thanks Hang
@ahmedmedani9147
@ahmedmedani9147 7 ай бұрын
والله شرح جميل جميل جميل جميل ربنا يجعله في ميزان حسناتك ❤❤
@Mnrk90
@Mnrk90 2 жыл бұрын
Great effort! Your tone catches attention and emphasizes the right parts at the right time.
@priyeshagarwal2644
@priyeshagarwal2644 2 жыл бұрын
Subscribed! This was by far the best tutorial available on protocol buffers.
@shashankm7560
@shashankm7560 4 жыл бұрын
Hey Hussein, excellent stuff ! one comment though. are we doing an apple to apple comparison by comparing the size of binary protobuff and json data written in file.. Essentially, Json would also be transmitted in the binary format along the wire.. So, rather, would it make sense to compare the footprint of json binary vs protobuff binary ?
@hnasr
@hnasr 4 жыл бұрын
Shashank M an excellent observation Shanshank!! Yes JSON (if you are using HTTP/2) it will be converted sent in Binary and compressed (that is the key here) however protobuff will still win because the original binary format is way smaller than JSON ..
@mertackportal6705
@mertackportal6705 3 жыл бұрын
@@hnasr First of all, incredible video. Really helpful. Secondly, this is my question as well. I understand the smaller memory and disk footprints, though I can't wrap my head around how a binary file has smaller network footprint than a JSON file. Assuming they are originating from identical data(Hussein, Ahmed, Rick), the transmitted packets over TCP should also be the same because data will be converted to binary regardless. Protobuf output is just one step ahead -- it is already converted before being transmitted. Ultimately, are we comparing the time it takes for Protoc to convert the data to binary, to TCP converting JSON to binary?
@mohamedessam611
@mohamedessam611 2 жыл бұрын
@@mertackportal6705 hey man, I have the same question as yours, were you able to get an answer?
@sridhar4211
@sridhar4211 Жыл бұрын
00:05 Protocol Buffers is a method of serializing structured data. 04:55 Write an application with JSON and JavaScript 09:28 Version 3 of the protocol is the latest and greatest with some changes 14:05 Google built a language-neutral protocol buffer compiler called Proto C. 18:47 Start building the employee class and use it 22:57 Protocol buffer is a powerful tool for serializing and deserializing data. 27:49 Protocol buffer is a language neutral protocol format with schema and compact size benefits. 32:09 Using protocol buffer may not be necessary for small applications without the need for a schema. Crafted by Merlin AI.
@gibsosmart
@gibsosmart 4 жыл бұрын
very nicely explained for a novice. but I need 3x speed from youtube. 2x speed still feels slow for this video.
@MoMadNU
@MoMadNU 3 жыл бұрын
F12 -> Console -> document.querySelectorAll('video').forEach(v => v.playbackRate = 3.00)
@ahmedhibet
@ahmedhibet 2 жыл бұрын
One of the best explanation I have seen. Your vibe and energy is another level. Keep it up bro. here you got a new subscriber 👍
@Salehalanazi-7
@Salehalanazi-7 3 жыл бұрын
Man... That was a hell of a beautiful video. I don't watch long videos but damn.... You're fun and really understand what the hell you're doing
@ominousCONTENT
@ominousCONTENT 2 ай бұрын
Great tutorial, you helped me get my feet wet.
@hackingguy
@hackingguy 3 жыл бұрын
Well now the channel have 114k! Congrats to your past! 🎉🔥
@KeyserTheRedBeard
@KeyserTheRedBeard 2 жыл бұрын
great content Hussein Nasser. I broke that thumbs up on your video. Continue to keep up the great work.
@vershaverma1409
@vershaverma1409 3 жыл бұрын
Very well explained thankyou for the video!! But I have a doubt, take java for example java has its own serialization mechanism so what is the difference between the serializing mechanism that java offers and protobuff ? and if they are similar then why would anyone use protobuff instead?
@hnasr
@hnasr 3 жыл бұрын
Good question, every language has its own serialization logic, Java, C#, Javascript, Golang. Those are not compatible with each other. If you serialize a class in Java client you can’t deserialize it “easily” to C# server. Protobuf is a universal standard for serialization for all languages (or supported ones at least)
@vershaverma1409
@vershaverma1409 3 жыл бұрын
@@hnasr gotcha ! Thanks
@Celsian
@Celsian 2 жыл бұрын
Thanks for the knowledge, you have a lot to offer. I would have preferred if the text were a little smaller and/or if you got rid of the terminal when it's not in use, or make it smaller.
@giorgiogristina4119
@giorgiogristina4119 Жыл бұрын
You are a Star!!! Very fun, clear and straight to the point. keep up!!!! 🙌
@craigmunday3707
@craigmunday3707 3 жыл бұрын
Another great video. Protocol buffers seem like a much more accessible version of Asn.1 and the various TLV encoding
@VinayVerma982
@VinayVerma982 2 жыл бұрын
"your clients will yell at you regardless what do you do, it's the circle of life, there is no escape from that" 35:29 I really felt that feeling. Thanks Hussein, it was amazing, watched your video before sleeping, and now 🫡 "what is sleep?" will watch your gRPC video then will think of sleeping. haha
@diasflp
@diasflp 3 жыл бұрын
Ok, I never comment here at YT. First time commenting here just to thank you for that humor. Very good!! Had a very great time watching this. And the video was very technically helpful. So thanks again!
@hnasr
@hnasr 3 жыл бұрын
Thanks Felipe for taking the time to write comment ❤️ glad you enjoyed the video
@mliyanage
@mliyanage 4 жыл бұрын
Nice video Hussein. Protobuf is very similar to the .Net remoting concept except this is language-neutral.
@NishaJakhar26
@NishaJakhar26 4 жыл бұрын
Very cool way of explanation. IIIIIIIIIIIIIIIIIIII loved it
@hnasr
@hnasr 4 жыл бұрын
Glad it was helpful Naysha!
@ammarinader9538
@ammarinader9538 2 жыл бұрын
What an incredible content and amazing pedagogical approach full of energy and simplicity!
@Kidpunk98
@Kidpunk98 2 жыл бұрын
Thank you so much for this. Such a clear and beautiful explanation, and your personality is so wholesome and funny lol. Really enjoyed the video, take my like!
@alexeyshevelyov1163
@alexeyshevelyov1163 3 жыл бұрын
Dear Hussein, keep that same spirit up!
@roarlisfang2860
@roarlisfang2860 2 жыл бұрын
You are great at keeping the audience's attention! I enjoyed this course.
@cheebadigga4092
@cheebadigga4092 Жыл бұрын
loved the Abrakadabra Poof :D
@romeropereira4089
@romeropereira4089 2 жыл бұрын
Man that was such a simple still great and useful tutorial on protobuf. I wasn't expecting too much from it and now I'm taking away great information. Cheers man!
@abhinavsrivastava2824
@abhinavsrivastava2824 4 жыл бұрын
Thank you so much , I was really stuck with that . And your style is just awesome !
@hnasr
@hnasr 4 жыл бұрын
Thanks for your comment I am happy I could help.
@parthas5512
@parthas5512 7 ай бұрын
Not boring, very cool attitude
@naveenkumarch5991
@naveenkumarch5991 4 жыл бұрын
Loved it as always. Great work buddy! I always eagerly forward to your videos. They are quite informative and helpful in understanding the fundamentals of these concepts.
@hnasr
@hnasr 4 жыл бұрын
Glad you like them! thanks Naveen
@rmanceraleal
@rmanceraleal Жыл бұрын
Fantastic Video Hussein. thank you for the hard work.
@jamieblaze6514
@jamieblaze6514 4 жыл бұрын
You are literally the voice in my head.. lol exactly how my internal monolog sounds haha great videos man!
@hnasr
@hnasr 4 жыл бұрын
Haha Glad to hear it! Thanks Jamie! all the best
@39rama
@39rama Жыл бұрын
Thanks for the excellent video. Your presentation style was just great. Energetic and fun with great content!
@rutakirsteine5190
@rutakirsteine5190 2 жыл бұрын
Very interesting video. Made me watch it till the end and it is not usual for me :)
@mickjohnston499
@mickjohnston499 3 жыл бұрын
This is a great tutorial I like that you have a bit of fun with these it really helps keep it engaging.
@briceleroy
@briceleroy 2 жыл бұрын
Your size comparison is missing the zip compression aspect, where low entropy (JSON) would compress very well, while high entropy (bytes) would not
@VATSAL372
@VATSAL372 3 жыл бұрын
You are fun to watch! Well explained 👍
@hnasr
@hnasr 3 жыл бұрын
Thanks!
@MrWeb-dev
@MrWeb-dev Жыл бұрын
I use the zlib and compress. That offers good compression. I wonder if protobuff could be compressed, and if so, would it be worth it?
@jaunathang
@jaunathang Жыл бұрын
It's been a while since I had literate fun while learning. Good job! I'm surprised to find you here since I was looking for your backend course on Udemy two weeks ago.
@amychen6932
@amychen6932 3 жыл бұрын
Like the way you teaching!! Thanks for sharing all your ideas!!
@leopet6815
@leopet6815 3 жыл бұрын
That was clear and concise. Thank you.
@vinodjoshi435
@vinodjoshi435 Жыл бұрын
nicely explain , you're my brother.
@yahwehagape
@yahwehagape 2 жыл бұрын
I love how you say “array”. 11:18
@AMIT103254
@AMIT103254 Жыл бұрын
hey man ur videos are addictive..😃
@TurkishZombie
@TurkishZombie 2 жыл бұрын
Life saver. Thank you man.
@prasadsanga4830
@prasadsanga4830 4 жыл бұрын
Good info for the beginners who wants to know the stuff
@rishiprotimbose6167
@rishiprotimbose6167 3 жыл бұрын
This was something new for me... 😋 Thanks for making my day @Hussein 😁😁
@douglasokubo7666
@douglasokubo7666 3 жыл бұрын
I really enjoy your explanation! Tks
@bendunaway8296
@bendunaway8296 4 жыл бұрын
Great video, thank you. Gonna go check out your channel.
@hnasr
@hnasr 4 жыл бұрын
Welcome! And enjoy the content
@AnubhavShrivastava
@AnubhavShrivastava 2 жыл бұрын
Hey Hussain, Thanks for the informative video. Wanted to ask, without protoi buff also, i could convert a object to binary format. The binary will always be less compared serialised value right?
@luqmansen
@luqmansen 4 жыл бұрын
Cool video, can't wait for the gRPC part
@Suraj-tz3oq
@Suraj-tz3oq Жыл бұрын
26:05 what does he mean by that when he says, "protocol buffer avoids extra round trips specially the tcp round trips"?
@saadowain3511
@saadowain3511 3 жыл бұрын
شكرا ابو ناصر
@vijeth2
@vijeth2 4 жыл бұрын
Brilliant tutorial, this is cool. Thanks.
@rydmerlin
@rydmerlin 2 жыл бұрын
When your fields are strings what will the space savings look like over json?
@ChristopherHayles
@ChristopherHayles Жыл бұрын
Good introduction. Thanks.
@dantedt3931
@dantedt3931 2 жыл бұрын
This is awesome dude. Great channel. Subbed.
@rishabhjaishwal1247
@rishabhjaishwal1247 4 жыл бұрын
I have a question as PROTOC convert the data into buffer. Then without using the deserialize function of PROTOC. Can i deserialize by using nodejs core buffer module. Or it only be deserialize by specifying the proto file which contain the schema.
@kumaravelrajan
@kumaravelrajan 3 жыл бұрын
Excellent video. Thank you for this tutorial.
@TheKittenish
@TheKittenish 3 жыл бұрын
I got you on 1.75x speed and you're really hyped bro.
@elmeroranchero
@elmeroranchero 4 жыл бұрын
Bro, how do you get time to learn all this stuff? it's amazing
@hnasr
@hnasr 4 жыл бұрын
Daniel González i research during my commute to work and record in weekends. My wife helps me with editing so that really make me focus on content. Thanks happy you like the content
@suryakantjadhav3005
@suryakantjadhav3005 4 жыл бұрын
Loved the explanation! Thank You!
@siddharthparashar9169
@siddharthparashar9169 Жыл бұрын
I'm using grpc with node and for proto loader using grpc/protobuf loader is there any method to load file using URL?
@ajaymenon0
@ajaymenon0 2 жыл бұрын
This was an amazing explanation. Here's my sub! 😎
@carlreiser7969
@carlreiser7969 3 жыл бұрын
How do I parse the string that comes back after deserialize? Is there a helper method to get the deserialization as an Object?
@eyecanddy
@eyecanddy 2 жыл бұрын
Im a simple man. I hear "ooo abracadabra poof!" And i hit the like button.
@serjnefiodov6302
@serjnefiodov6302 3 жыл бұрын
Thanks for video, man! Cool explanation
gRPC Crash Course - Modes, Examples, Pros & Cons and more
1:19:38
Hussein Nasser
Рет қаралды 236 М.
Что такое gRPC и Protobuf?
8:37
Merion Academy
Рет қаралды 57 М.
How Much Tape To Stop A Lamborghini?
00:15
MrBeast
Рет қаралды 213 МЛН
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 8 МЛН
Hoodie gets wicked makeover! 😲
00:47
Justin Flom
Рет қаралды 134 МЛН
How HTTP/2 Works, Performance, Pros & Cons and More
22:45
Hussein Nasser
Рет қаралды 108 М.
The intro to Docker I wish I had when I started
18:27
typecraft
Рет қаралды 252 М.
When RESTful architecture isn't enough...
21:02
Dreams of Code
Рет қаралды 283 М.
WebSockets Crash Course - Handshake, Use-cases, Pros & Cons and more
47:33
Do NOT Learn Kubernetes Without Knowing These Concepts...
13:01
Travis Media
Рет қаралды 324 М.
tRPC, gRPC, GraphQL or REST: when to use what?
10:46
Software Developer Diaries
Рет қаралды 89 М.
Intro to gRPC in C# - How To Get Started,
1:04:00
IAmTimCorey
Рет қаралды 237 М.