Getting started with Tokio. The ultimate starter guide to writing async Rust.

Ғылым және технология

Async Rust is one of the more exciting developments of the last few years, and Tokio is a powerful framework to enable asynchronous code, which can provide performant and scalable solutions.
It's also scary and daunting to tackle without any understanding. This video aims to be the ultimate starter guide for writing async code with Tokio, and how to achieve performant code that's both blocking and non-blocking
Become a better developer in 4 minutes: bit.ly/45C7a29 👈
My socials:
Twitter: / dreamsofcode_io
Discord Server: / discord
#rustlang #tokio #async #coding #programming #developers #frameworks #framework #await #asynchronous #nonblockingio
00:00 Intro
00:12 Getting Started
01:46 Non Blocking IO
02:52 Futures
04:39 Tokio Features

Пікірлер: 57

  • @TheRealKitWalker
    @TheRealKitWalker8 ай бұрын

    Wow. Appreciate the hard work in compiling all this information in a precise way. Thanks. Very refreshing.

  • @BooTheDev
    @BooTheDev Жыл бұрын

    Super cool video! I was confused about async in rust for a long time but could not find the great one like this. Thanks!

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    I'm glad you found it useful! Let me know if there's any other topics I should cover as well!

  • @katzetante5599

    @katzetante5599

    Жыл бұрын

    Same 😂

  • @r2_rho
    @r2_rho10 ай бұрын

    Easily the best explanation ive seen on tokio. Thanks for this!

  • @dreamsofcode

    @dreamsofcode

    10 ай бұрын

    Thank you for the kind feedback!

  • @brivism
    @brivism Жыл бұрын

    Wtf man. This content is pure gold! Love the quality 🔥🔥

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    Thank you!

  • @irlshrek
    @irlshrek Жыл бұрын

    loving the rust content!

  • @skytech2501
    @skytech2501 Жыл бұрын

    Awesome guide to async! Please make the follow-ups for other tokio async modules. Thanks 👍

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    I shall do!

  • @sparschaler3536
    @sparschaler353611 ай бұрын

    Great video. Thanks for not begging me to subscribe, which I had already done half way through.

  • @dreamsofcode

    @dreamsofcode

    11 ай бұрын

    I'm sure KZread viewers have been told to subscribe many times in their lives 🤣

  • @programmingfunda8213
    @programmingfunda8213 Жыл бұрын

    thanks, keep motivating us towards rust

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    Always!

  • @jeffreyefemena1082
    @jeffreyefemena10822 ай бұрын

    best explanation to tokio i've seen thank you

  • @foxcirc
    @foxcirc5 ай бұрын

    I prefer smol/async-executor. It is much more lightweight and compiles like 10x faster. The only issue is that there are less libraries written for it then there are for Tokio, but this has not been that big of a deal for me.

  • @anush8
    @anush8 Жыл бұрын

    Earned a sub man. Great video.

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    Thank you! Glad you enjoyed it!

  • @jonforhan9196
    @jonforhan9196 Жыл бұрын

    Great video! I learned a lot!

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    Thank you! I appreciate the feedback. I'm looking forward to doing some more async Rust content!

  • @JitenPalaparthi
    @JitenPalaparthi17 күн бұрын

    Excellent stuff..

  • @aaronraycove9517
    @aaronraycove951710 ай бұрын

    Your video didn't directly address the issue I was running across. But thanks for explaining this in more detail, because having that understanding helped me figure out the issue I was having. This is awesome Thanks so much.

  • @dreamsofcode

    @dreamsofcode

    10 ай бұрын

    Really glad to hear it helped! What was the issue you were facing? Maybe I can make a video about it :)

  • @MrKeebs
    @MrKeebs Жыл бұрын

    Incredible intro and channel. Have a sub! Thank you!

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    Thank you! I'm glad you enjoyed the video.

  • @TechBuddy_
    @TechBuddy_ Жыл бұрын

    This is by far the best explanation of tokio, this is just fantastic. I love you man 💓

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    Aww thanks! I'm glad you liked it!

  • @adewumisunkanmi5593
    @adewumisunkanmi55933 ай бұрын

    thanks for this

  • @learntry9074
    @learntry9074 Жыл бұрын

    Thank you

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    You're very welcome

  • @nurmohammed9642
    @nurmohammed9642 Жыл бұрын

    Appreciate your hard work! Reading from file in async context does not boost performance, because OS generally does not provide async API, Tokio spawn a thread from thread pool to work with file.

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    You're correct, it's no faster than reading from a file normally, but allows concurrency due to the use of the thread pool. Which can be somewhat quicker as it need not create a new thread to do so! But the file operation is the same.

  • @nurmohammed9642

    @nurmohammed9642

    Жыл бұрын

    @@dreamsofcode quicker at coding, slower at runtime (I mean, what is the point of async, if it make your code slower) you can't mix async code with sync code... I like to call `spawn_blocking` on sync api...

  • @a314
    @a314 Жыл бұрын

    Great content. Please do a video about structured concurrency in rust.

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    I've added to the backlog!

  • @a314

    @a314

    Жыл бұрын

    @@dreamsofcode awesome 🙂

  • @gosnooky
    @gosnooky9 ай бұрын

    Been starting at that code at 6:00, and I can't figure out how it sorts those strings.

  • @sndb6352
    @sndb6352 Жыл бұрын

    How did you made your terminal to this beautiful theme?

  • @dreamsofcode

    @dreamsofcode

    Жыл бұрын

    Ahh thank you, I use tmux + neovim + catppuccin theme!

  • @sndb6352

    @sndb6352

    Жыл бұрын

    In which web site you found this wallpaper?

  • @anonymmc2764
    @anonymmc2764 Жыл бұрын

    Great content! I have one question regarding the futures though: If the future is only executed once await is called (generally speaking) that implies we would lose some performance here, would it not? Let's say we have an async database call. If we were to execute the call right away it might have completed already once we await it. But since execution is lazy it's only executed once we await it. This might not be a huge problem since we can use our resources for something else while awaiting the database's response (due to the use of a thread pool) but it would still add to our overall latency, would it not? Or do I have a fundamental misunderstanding of lazy execution in this context?

  • @michaelaboah1322

    @michaelaboah1322

    Жыл бұрын

    In the case that data is not ready for a future it goes into a PENDING state which will run a wake function when there is data available. Kinda like how u get mail when u hear the truck. Futures are designed to be incredibly efficient and zero cost

  • @discreaminant

    @discreaminant

    3 ай бұрын

    No u r on the right track btw In this case you can use join! macro to do other job while awaiting the db operation let (res, _) = join!(ur_db_operation, async { // ur other job here });

  • @danielmontalvo1929
    @danielmontalvo1929 Жыл бұрын

    TOOOOKIOOOOOOOOO

  • @usher-p

    @usher-p

    9 ай бұрын

    why did i read this in primeagean's voice?

  • @motbus3
    @motbus3Ай бұрын

    2:20 if you build release mode, it seems it resolves it automatically

  • @ryanleemartin7758
    @ryanleemartin77586 ай бұрын

    huh, I tokio just provided a way to do async/await. I didn't know it had channels and green threads as well.

  • @justADeni
    @justADeni8 ай бұрын

    Reminds me a lot of Kotlin coroutines.

  • @EhdrianEh
    @EhdrianEh6 ай бұрын

    This is great! Now, when to pin and unpin please :)

  • @haliszekeriyaozkok4851
    @haliszekeriyaozkok48518 ай бұрын

    Tokio is not a framework, it is a runtime. There is huge difference between each other. Axum, rocket etc is frameworks and they depending on tokio runtime.

  • @SamuelSarette

    @SamuelSarette

    2 ай бұрын

    The first two seconds the calls in a runtime. Haven't watched more to know if he slips up later, but yeah, you're right there's a difference

  • @minnow1337

    @minnow1337

    2 ай бұрын

    t’s a runtime in the same way people call react a library. In practice I’d say both are practically frameworks

  • @pb8655
    @pb86559 ай бұрын

    someone tell me if and why this is an L take but shouldnt some of these features be in the std lib?

  • @metaltyphoon
    @metaltyphoon10 ай бұрын

    The fact that you have to use Tokio’s version of already implemented functionality on the std is really annoying.

  • @spectator5144
    @spectator514410 ай бұрын

    beeg?

Келесі