A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ... (by tokio-rs)

Tokio Alternatives

Similar projects and alternatives to tokio

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better tokio alternative or higher similarity.

Suggest an alternative to tokio

Reviews and mentions

Posts with mentions or reviews of tokio. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-10-24.
  • Pointer Fu: An adventure in the Tokio code base | 2021-10-25
    In an effort to understand the internals of asynchronous runtimes, I've been spending time reading Tokio's source code. I've still got a long way to go but it has been a great journey so far.
  • Implementing the Health Check API Pattern with Rust | 2021-10-24
    For sqlx, we want to make sure we include the "postgres" feature during compilation, so we have PostgreSQL drivers to connect to our PostgreSQL database with. Next, we'll want to make sure we have the runtime-actix-native-tls feature included so that sqlx can support the actix-web framework which uses the tokio runtime. Finally, let's include serde and serde_json for serializing our Health Check API response body for later in the post.
  • Hey Rustaceans! Got an easy question? Ask here (40/2021)! | 2021-10-04
    You can use -Dwarnings to have any warning become a compiler error. See an example here.
  • Hey Rustaceans! Got an easy question? Ask here (38/2021)! | 2021-09-21
    How about this one? Add Stream mock to tokio-test | 2021-09-21
    Seems like there's no API for that - at least not yet:
  • Full-stack Rust: A complete tutorial with examples | 2021-09-17
    Besides that, since Warp is optimized for Tokio, we need to add it as our async runtime. We’ll add some utility libraries for error and JSON handling, as well as an internal dependency to our common project.
  • New Ada Folks (<2 years), what made you pick up (or leave) Ada? | 2021-09-14
    Nothing like seems to exist for Ada.
  • Lock-free, allocation-free, efficient thread pool | 2021-09-13
  • Is the crate dependency becoming a problem? | 2021-09-09
    I must admit that I have been noticing this as projects become larger (and hence more complex dependency graphs). The dependencies usually look plentiful, but fortunately, the most popular crates only pull in the bare minimum. In most cases, they depend on "micro-crates" or "sub-crates (of the same workspace)", which is what gives the illusion of "too many crates". A good example of a well-structured project is Tokio, where most dependencies are optional and barred behind additive compilation features.
  • The Persistent Gravity of Cross Platform | 2021-09-03
    Multiple event loop integration is one of things projects get to very late in their lifecycle, if they ever get to it at all. Tokio is no exception:

    When I used to write more networking C code, I used to be careful to write my libraries to be event loop agnostic. And if my library had its own event loop, I made sure that it could be stepped independently so it could sit atop another application event loop. This is alot easier on modern Unix systems because kqueue and epoll can be stacked--you can poll a kqueue/epoll descriptor from another kqueue/epoll descriptor, so sockets, timers, etc registered with the first will bubble up to parent and your library-specific event loop can just export a single file descriptor to be polled by another event loop. Windows doesn't have such a capability so there's no simple way to bubble events up.

    Of course, you can run your different event loops in different threads, but then you have to deal with the nightmare of shared data multithreading. Rust makes multi-threading "fearless" because it heavily restricts multiple threads from holding references to the same object, so Rust doesn't help in this regard, especially considering you're integrating with non-Rust code and, worst of all, GUI APIs, which tend to be some of the most inscrutable and hostile code to integrate with.

  • tower-http ServeDir performance improved! [tower-http 1318M/s vs actix 1435M] | 2021-09-02
  • Hey Rustaceans! Got an easy question? Ask here (34/2021)! | 2021-08-23
    Thank you u/Darksonn! Looks like your is enough to get me started :)
  • Hexagonal architecture in Rust #1 | 2021-08-22
    I'd prefer to have something like the tokio repository where they have a workspace with multiple members (one being the core library) and inside you put the business code inside as you want without a "core" or "domain" folder.
  • Microsoft Rust intro says "Rust is known to leak memory" | 2021-08-08
    UnsafeCell being transitively mutable via aliasing (&mut T implies &mut T.field; field could be UnsafeCell and wish to be shared with other threads; core traits require the &mut T to use them conveniently; sharing the UnsafeCell is then UB) makes intrusive Futures (and possibly shared Iterators) currently UB.
  • Announcing Linkerd's CNCF Graduation
    A few years later, we found that the ecosystem had grown a bit--specifically Tokio--the core async networking framework--and Hyper--an extremely fast HTTP client/server implementation built on Tokio. We used these to build a relatively simple TCP proxy for the Linkerd 1.x ecosystem (linkerd-tcp). This gave us enough confidence to start investing more heavily in Rust.


Basic tokio repo stats
7 days ago

tokio-rs/tokio is an open source project licensed under MIT License which is an OSI approved license.

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
Find remote jobs at our new job board There are 38 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.