Rust Async

Open-source Rust projects categorized as Async

Top 23 Rust Async Projects

  • GitHub repo actix-web

    Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

    Project mention: Hola Mundo en Rust | dev.to | 2021-04-11
  • GitHub repo sqlx

    🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, SQLite, and MSSQL. (by launchbadge)

    Project mention: A tiny PostgreSQL implemented in Rust | reddit.com/r/rust | 2021-04-10

    In our experience working on SQLx we've found a number of SQL servers that talk the Postgres protocol but are still difficult to integrate with, usually because they don't support prepared statements which SQLx's API pushes the user towards pretty strongly on purpose, or they have some idiosyncrasies that differ from Postgres: https://github.com/launchbadge/sqlx/issues/933

  • GitHub repo gitui

    Blazing 💥 fast terminal-ui for git written in rust 🦀

    Project mention: GitUI - v0.14 released | dev.to | 2021-04-12

    much more

  • GitHub repo tonic

    A native gRPC client & server implementation with async/await support.

    Project mention: Setting Up a gRPC Protobuf Server With Tonic | dev.to | 2021-04-12

    This post documents my experience setting up an example project with rust and tonic, which is maintained by one of my coworkers, Lucio. I will set up a simple server, add some other APIs and set up a second server to do health checks.

  • GitHub repo async-std

    Async version of the Rust standard library

    Project mention: Rust async is colored, and that’s not a big deal | reddit.com/r/rust | 2021-03-14

    And also, the actual PR never got merged.

  • GitHub repo smol

    A small and fast async runtime for Rust

    Project mention: Tokio, the async runtime for Rust, hits 1.0 | news.ycombinator.com | 2020-12-23

    Found the issue in Google cache. I'm not sure it's really fair of me to post this link here, but equally I think it's better to give the actual text rather than leave it vague.

    https://webcache.googleusercontent.com/search?q=cache:PRjMyv...

  • GitHub repo Gotham

    A flexible web framework that promotes stability, safety, security and speed.

  • GitHub repo riker

    Easily build efficient, highly concurrent and resilient applications. An Actor Framework for Rust.

  • GitHub repo heim

    Cross-platform async library for system information fetching 🦀

    Project mention: Get network interface status in rust? | reddit.com/r/rust | 2021-02-20

    heim can do that for *nix systems (Linux, macOS, etc) and Windows support being implemented right now.

  • GitHub repo lapin

    AMQP client library in Rust, with a clean, futures based API

    Project mention: Rust implementation of the AMQP 1.0 | reddit.com/r/rust | 2021-02-05

    lapin is pretty good - we've been using it on production for a few months now without any major issues + the author is impressively responsive.

  • GitHub repo context-switch

    Comparison of Rust async and Linux thread context switch time.

    Project mention: Goroutines Are Not Significantly Smaller Than Threads | reddit.com/r/programming | 2021-03-14

    I think at 50k you’ll run into various “number” limits as describe here: https://github.com/jimblandy/context-switch#running-tests-with-large-numbers-of-threads

  • GitHub repo ocl

    OpenCL for Rust

    Project mention: Trying to install something using rust and really stuck, any help at all appreciated. | reddit.com/r/learnrust | 2021-03-03

    - https://github.com/cogciprocate/ocl/issues/202

  • GitHub repo actix-net

    A collection of lower-level libraries for composable network services.

    Project mention: Weird architectures weren't supported to begin with | reddit.com/r/rust | 2021-04-01

    > For example, this method violates memory safety by handing out multiple mutable references to the same data, which can lead to e.g. a use-after-free vulnerability. I have reported the issue to the maintainers, but they have refused to investigate it. _(issue now deleted)_

  • GitHub repo ntex

    framework for composable networking services

    Project mention: JS faster than Rust? | reddit.com/r/rust | 2021-02-24

    ntex is a fork of actix by the previous maintainer https://github.com/ntex-rs/ntex/blob/b0aa9395daf6e76c28a6216831b030e7713c662a/Cargo.toml

  • GitHub repo async-tungstenite

    Async binding for Tungstenite, the Lightweight stream-based WebSocket implementation

    Project mention: generic purpose library in rust | reddit.com/r/rust | 2021-03-21

    You can also mix them a bit. The library tungstenite is implemented like this, and allows async-tungstenite to reuse the same logic but in a non-blocking manner. You have the API of the second option, but if a write call returns WouldBlock, you return to the caller and allow them to continue when the buffer is flushed. This can get complicated saving state though (e.g. whether it's currently doing authentication, uploading a file, etc.), but see my note below about Rust's async/await.

  • GitHub repo actix-extras

    A collection of additional crates supporting the actix and actix-web frameworks.

    Project mention: Simple authentiacion in actix | reddit.com/r/rust | 2021-03-11

    you can use basic auth. You can do it from nginx too which I recommend as Ngix can act as load balancer, reverse proxy, tls endpoint etc. And nginx is stable too. You can use actix-web-httpauth too.

  • GitHub repo thirtyfour

    Selenium WebDriver client for Rust, for automated testing of websites

    Project mention: Beginner to programming and rust | reddit.com/r/rust | 2021-02-26

    You can also automate browsers with https://github.com/stevepryde/thirtyfour

  • GitHub repo salvo

    Salvo is a simple Rust web server framework

    Project mention: Web server framework Salvo 0.10.3 | reddit.com/r/rust | 2021-04-07

    #[fn_handler] async fn upload(req: &mut Request, res: &mut Response) { let files = req.get_files("files").await; if let Some(files) = files { let mut msgs = Vec::with_capacity(files.len()); for file in files { let dest = format!("temp/{}", file.filename().unwrap_or_else(|| "file".into())); if let Err(e) = std::fs::copy(&file.path, Path::new(&dest)) { res.set_status_code(StatusCode::INTERNAL_SERVER_ERROR); res.render_plain_text(&format!("file not found in request: {}", e.to_string())); } else { msgs.push(dest); } } res.render_plain_text(&format!("Files uploaded:\n\n{}", msgs.join("\n"))); } else { res.set_status_code(StatusCode::BAD_REQUEST); res.render_plain_text("file not found in request"); } } Read more: https://github.com/salvo-rs/salvo

  • GitHub repo governor

    A rate-limiting library for Rust (formerly ratelimit_meter)

    Project mention: HTTP server with lots of network knobs? | reddit.com/r/rust | 2021-03-09

    Related: https://github.com/antifuchs/governor

  • GitHub repo extreme

    extremely boring async function runner! (by spacejam)

    Project mention: Any advice for dealing with async in libraries? | reddit.com/r/rust | 2021-03-10

    block_on in libraries can sometimes be achieved with a far lighter weight crate like my (kinda "educational" but still decent light-weight executor) extreme. But it's possible that rusoto uses one of tokio's hacky bits of functionality that violate the Future contract and make it incompatible with other executors. If that's the case, you're stuck using a tokio executor due to their refusal to play by the rules of the community around this interface.

  • GitHub repo zee

    A modern text editor for the terminal written in Rust

    Project mention: Amp: Vi-like batteries-included terminal editor written in Rust | news.ycombinator.com | 2021-04-12

    Relatedly, there's an Emacs-like editor written in Rust called Zee: https://github.com/mcobzarenco/zee

    I've become used to using Micro (written in Go) for everything: https://micro-editor.github.io/

    So I haven't really used Amp or Zee much, but I do have both installed on my system just in case I get bored of Micro ;-)

  • GitHub repo futures-batch

    An adapter for futures, which chunks up elements and flushes them after a timeout, or when the buffer is full. (Formerly known as tokio-batch.)

    Project mention: Rust stream processor. | reddit.com/r/rust | 2021-03-03

    Might be helpful: https://github.com/mre/futures-batch

  • GitHub repo darpi

    A rust web framework with safety and speed in mind.

    Project mention: New rust web framework darpi | reddit.com/r/rust | 2021-03-27

    For more info, visit the links below. repository: https://github.com/darpi-rs/darpi book: https://darpi-rs.github.io/book/ example app: https://github.com/darpi-rs/example-heroku-darpi

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-04-12.

Index

What are some of the best open-source Async projects in Rust? This list will help you:

Project Stars
1 actix-web 10,973
2 sqlx 3,810
3 gitui 3,709
4 tonic 3,346
5 async-std 2,834
6 smol 2,033
7 Gotham 1,801
8 riker 747
9 heim 583
10 lapin 520
11 context-switch 487
12 ocl 453
13 actix-net 426
14 ntex 413
15 async-tungstenite 215
16 actix-extras 202
17 thirtyfour 201
18 salvo 137
19 governor 110
20 extreme 51
21 zee 46
22 futures-batch 37
23 darpi 27