Building micro-services in Rust using gRPC!

Поділитися
Вставка
  • Опубліковано 13 тра 2022
  • Today we are discussing how to use gRPC in Rust. gRPC is often used in a microservices architecture.
    Code: github.com/letsgetrusty/grpc_...
  • Наука та технологія

КОМЕНТАРІ • 97

  • @letsgetrusty
    @letsgetrusty  2 роки тому +3

    📝Get your *FREE Rust cheat sheet* :
    www.letsgetrusty.com/cheatsheet

  • @flogginga_dead_horse4022
    @flogginga_dead_horse4022 2 роки тому +33

    I understood gRPC more in the first minute of this video than I ever did with other sources :D Well explained!!

  • @sharperguy
    @sharperguy 11 місяців тому +5

    The thing I love about rust is that the macro system is flexible enough to just generate the types at compile time, rather than needing a separate code generation step and a "do not edit this file" file

    • @souhachabir
      @souhachabir 5 днів тому

      could you explain more this idea,please? I'm currently stucking to understand the generated rust code

  • @boi64pr60
    @boi64pr60 2 роки тому +49

    What I like about your videos is that at least you do zoom the image so that it can be watchable even on a phone. Keep up the good work.

  • @user-if7lb8zy8i
    @user-if7lb8zy8i 2 роки тому +8

    Great vid, look forward to seeing more awesome videos in the future. I just love this channel's consistency :D

  • @agivney
    @agivney 2 роки тому +6

    As always, a great, clear and easy to understand tutorial. You have a gift for this, keep it up.

  • @yalld
    @yalld 2 роки тому +1

    This was a great video, you explained grpc very well, the necessary packages and why one might want to use this approach. Thanks for this!

  • @alexkarav
    @alexkarav 2 роки тому +4

    Bogdan, great video! And by the way, new previews is awesome and beautiful 😍

  • @colinheyl5034
    @colinheyl5034 2 роки тому

    Cheers! Working with my own theme, it took me a little bit to work out exactly what bits link to what other bits but I got it working. Very helpful video and repo, for my first time using Rust.

  • @Chrizz604
    @Chrizz604 2 роки тому +26

    Great video, maybe do another one with bidirectional streaming?

    • @letsgetrusty
      @letsgetrusty  2 роки тому +11

      Good idea! :)

    • @vinnbrock
      @vinnbrock 2 роки тому +3

      This video was great, thank you. I agree though. Please do bidirectional streaming.

    • @marcusgupta6148
      @marcusgupta6148 2 роки тому

      or maybe a music streaming server like spotify :)?
      thanks for the tute btw

    • @tabiasgeehuman
      @tabiasgeehuman Рік тому

      @@marcusgupta6148 that could probably be done via a webRTC stream or an opus stream

    •  Рік тому +2

      Indeed, bidirectional function calls and error handling would be great.

  • @saalimmohammed1599
    @saalimmohammed1599 2 роки тому

    Will Love to see more on this! Thank you

  • @chrisalexthomas
    @chrisalexthomas 2 роки тому +3

    wah! that's so easy, I don't understand the syntax, but it was really clear what you were trying to do. I think I might have a go at this in the future with a microservice and see what happens. Thanks for the video! Subscribed and got the bell on!

  • @muthuisheree
    @muthuisheree Рік тому +1

    Thanks for the video. I like the way you are explaining more than typing code. The line by line pasting syncs very well. Any extension you used or its editing?

  • @_jdfx
    @_jdfx 2 роки тому

    so good! best Rust youtube channel! thanks Bogdan!

  • @RobertoOrtis
    @RobertoOrtis Рік тому +2

    If we are talking about communication between microservices, the client (in this case) would be another microservice?

  • @ygameayd2505
    @ygameayd2505 Рік тому

    That's the best rust education channel.

  • @matthiasdebernardini3388
    @matthiasdebernardini3388 2 роки тому

    such an amazing video, thanks so much!

  • @noruntime
    @noruntime Рік тому +1

    Great video, thanks so much 👍

  • @goodwish1543
    @goodwish1543 2 роки тому

    Great topic. Would you take Meta Thrift RPC as well in future?

  • @pedrocardoz0
    @pedrocardoz0 Рік тому

    thats awesome, good job!

  • @Sharakov15
    @Sharakov15 2 роки тому +6

    Great video! But it would have been better with unit test in the end.

    • @vanish3408
      @vanish3408 2 роки тому +1

      not everything has to have unit tests

    • @brentsteyn6671
      @brentsteyn6671 2 роки тому +4

      @@vanish3408 😂😂 lol
      I think he just wanted to see how you would unit test this stuff.

    • @sharkpyro93
      @sharkpyro93 2 роки тому

      the rust comunity seems to hate tesing, thats Just shows that people using It are mostly hobbist, even the libraries and orms are not really made with testing in mind, too bad

    • @marcokuidja1950
      @marcokuidja1950 2 роки тому +1

      I think 🤔 that was not the goal. Never the less it would be simple to verify that the request send by the client is effectively the request excepted by the server and that response send by the server is the one excepted by the client

    • @proloycodes
      @proloycodes 2 роки тому

      @@sharkpyro93 yeah just fill everything with tests and get fired

  •  Рік тому

    Hey bro, super awesome the video. Could you let me know witch autocomplete use in you console ?

  • @ARS-fi5dp
    @ARS-fi5dp 2 роки тому

    Thank you man 🙏❤

  • @bandrefilipe
    @bandrefilipe 2 роки тому +2

    Does it need cmake installed? Why is it not said anywhere?

  • @yoni-3240
    @yoni-3240 Рік тому

    Amazing thank you!

  • @Asgallu
    @Asgallu 2 роки тому

    Great video!, I send data to server and the server response to the microservice. However, I have a doubt, if I wanted to comunicate 2 microservices between them, how can I do it?, sending data from microservice1 through the server and this sends it to microservice1

  • @user-bu3hz5be5w
    @user-bu3hz5be5w Рік тому

    super helpful!

  • @GlobalYoung7
    @GlobalYoung7 2 роки тому

    thank you 👍

  • @alanhoff89
    @alanhoff89 2 роки тому

    Can you do a video on manually implementing std::future::Future?

  • @wolfeygamedev1688
    @wolfeygamedev1688 11 місяців тому +1

    How do we deploy this application to the public web?

  • @zatochiSiberian
    @zatochiSiberian 2 роки тому

    Thanks!

  • @sathyajithps013
    @sathyajithps013 11 місяців тому

    wait, what does rt-multi-threaded do exactly? If I remember correctly, isnt tokio multithreaded by default?

  • @telostia
    @telostia Рік тому

    This is quite a cheatsheet tutorial 😁

  • @marc47marc47
    @marc47marc47 2 роки тому

    Great!!

  • @user-lw2wj5tz6s
    @user-lw2wj5tz6s Рік тому

    Thanks :)

  • @IamAWESOME3980
    @IamAWESOME3980 3 місяці тому

    how do you do user login?

  • @Xeros08
    @Xeros08 2 роки тому

    Nice

  • @vinsmokearifka
    @vinsmokearifka Рік тому +2

    Great video Sir, but I don't get on ''bitcoin_server" & "bitcoin_client" come from..

    • @matthewfrantz8218
      @matthewfrantz8218 Рік тому

      Yeah I was wondering the same thing. Anyone have any ideas? I wonder if they get generated by the grpc framework under the hood

  • @sourav_-_7038
    @sourav_-_7038 2 роки тому +30

    OMFG thanks for this. Rust just needs few more backend frameworks like fast api and flask restful, then it's gameover for go.

    • @bjugdbjk
      @bjugdbjk 2 роки тому +2

      Yeah I feel rust deserves lot of attention then compared to GO, Rust is super capable !

    • @zh4842
      @zh4842 2 роки тому

      Go=K8s

    • @bjugdbjk
      @bjugdbjk 2 роки тому

      @@zh4842 yeah true...major portion is using Go,but lately they understood lot of memory related bugs has been found during runtime...so they r moving to rust..looks for a talk rust for cloud development !

    • @sourav_-_7038
      @sourav_-_7038 2 роки тому

      @Víctor Martínez rocket is slow af. I have tried, actix is 10x better

    • @ironhammer4095
      @ironhammer4095 Рік тому

      @@sourav_-_7038 How bout Axum web framework?

  • @Julianchuk
    @Julianchuk 2 роки тому

    are u actually building any project on intenet computer blockchain?

  • @Skiamakhos
    @Skiamakhos 9 місяців тому

    Is it easy enough to see, looking at the code, when a function call is going out to a microservice - because if not it may make support/ops harder than it needs to be. If you can see that it's an http call, it's obvious what it's doing.

  • @tony-go-code
    @tony-go-code 7 місяців тому

    cool 👍

  • @CassinoDev
    @CassinoDev 2 роки тому

    Amazing o/

  • @Snijele
    @Snijele 5 місяців тому +1

    chee shee ❤

  • @kevinpiovezan
    @kevinpiovezan 2 роки тому

    Did you manage to get a Rust developer job man?

  • @jeffg4686
    @jeffg4686 2 роки тому

    @6:20
    Result of a Response of a BtcPaymentResponse and also a status - whew.
    Sure would be sweet if it just returned a BtcPaymentResponse only that included the status and wasn't wrapped (remember the good ole days)

  • @marcomarek7734
    @marcomarek7734 Рік тому

    ❤️

  • @johndesmond5153
    @johndesmond5153 2 роки тому

    Thanks for the video. Anyone else getting this error from error lens after implementing server.rs?
    ```
    `BtcPaymentRequest` doesn't implement `Debug`
    the trait `Debug` is not implemented for `BtcPaymentRequest`
    add `#[derive(Debug)]` to `BtcPaymentRequest` or manually `impl Debug for BtcPaymentRequest`
    ```

  • @mathiasayivor
    @mathiasayivor Рік тому

    Can you add captions next time? This way we get to know the spelling of some of the terms that you're mentioning

  • @jasonlantz3808
    @jasonlantz3808 2 роки тому

    yeah g....

  • @michalbotor
    @michalbotor Рік тому

    i wanted to learn some rust late at night. but i am totally lost. rust is hard. really hard.

  • @alithejumbo
    @alithejumbo 2 роки тому

    Shaking my head

  • @jjoster
    @jjoster 2 роки тому

    Where are the unit tests?

  • @nothingisreal6345
    @nothingisreal6345 Рік тому

    In the good ol' days MS had DCOM (Distributed COM) - which did exactly what gRPC does today - and I guess it was even faster... IT keeps reinventing the wheel.

    • @itellyouforfree7238
      @itellyouforfree7238 Рік тому

      Sure, and my grand-grandpa in WWI used pigeons, which I guess it was even faster

    • @GottZ
      @GottZ Рік тому

      well.. dcom kernel space message queueing.. grpc is TCP..

  • @ayowtf_m8
    @ayowtf_m8 2 роки тому

    Hi, I've been watching your channel for about a month now, and I have one question. Are you Ukrainian/russian/? I know that Bogdan isn't actually an American name, so I wonder where you are from.

  • @summertoo
    @summertoo 2 роки тому

    xie xie

  • @climatechangedoesntbargain9140
    @climatechangedoesntbargain9140 2 роки тому +1

    How about writing an integration test in the future instead of testing the shitcoin service instead of comparing console output?

    • @memelord4639
      @memelord4639 2 роки тому +7

      because this is a gRPC video not an integration testing video

    • @steverude
      @steverude 2 роки тому +8

      Maybe chill Bogdan gives us all this great content for free. It costs nothing to be nice.

    • @itellyouforfree7238
      @itellyouforfree7238 Рік тому

      it's a demo to introduce people to gRPC. what is it that you dont understand?

    • @climatechangedoesntbargain9140
      @climatechangedoesntbargain9140 Рік тому

      @@steverude true, my comment seems rude although it wasn't meant that way - probably gonna delete it

  • @dextreme1754
    @dextreme1754 Рік тому

    Rust looks horrible it hurts my eyes

  • @rasputindasilva858
    @rasputindasilva858 2 роки тому +1

    Rust sucks.