flume
reqwest
Our great sponsors
flume | reqwest | |
---|---|---|
14 | 57 | |
2,161 | 9,095 | |
- | - | |
4.4 | 8.7 | |
about 1 month ago | 4 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
flume
-
Hyperbridge: Fast multi-producer, multi-consumer unbounded channel in Rust
The repository seems abandoned; or maybe complete?
At work we use flume, which is another capable multi-producer, multi-consumer async-capable channel [1]. It's great for shuffling data between threads, as well as between async tasks, and between threads and async tasks. Basically any time you want to pieces of code to exchange data or signals without pesky shared state.
- pub/sub Event bus in rust
-
Is there any part of the Standard Library that really impresses you?
I also like flume, it has impressive performance (although not the best). More importantly, it's written only with safe rust. https://github.com/zesterer/flume
-
appreciating fearless concurrency
The most commonly suggested replacement for mspc is crossbeam-channel; flume is also relatively popular.
-
Rust has a small standard library (and that's ok)
It's not officially deprecated, but the alternatives on crates.io are considered better. flume and crossbeam-channel feature less unsafe code and offer better performance. Benchmarks.
-
Why are so many important features not in standard library yet?
it's slow (checkout flume's benchmarks for example)
-
Request-response communication between threads?
I would have done the same. I think, and I might be wrong, but the only other alternative, besides anything unsafe, would be to pass mutex back, but I am not sure this would be faster. Btw, I have not done testing, but you might want to look at Flume for your mpsc channels: https://github.com/zesterer/flume Flume, seems to be very fast mpsc implementation. I am planning to evaluate it for logging system.
-
A mini-Erlang/Elixir -- tell me if/why my idea sucks
For concurrency/parallelism, you launch at most 2 * CPU Cores, PIN them and use a fast broker to spread the task (like a ring buffer or an MPSC). But you keep linear scan, tight loops, SIMD friendly data, on each. You are not switching context that much, and instead, bet you will process the batch fast. (CPUs are fast today!)
- Whats your favourite open source Rust project that needs more recognition?
-
Suggestions on a fast spmc architecture.
https://crates.io/crates/flume and https://crates.io/crates/crossbeam-channel provide MPMC channels.
reqwest
-
The Linux Kernel Prepares for Rust 1.77 Upgrade
> If you are equally picky and constrain yourself to parts of the ecosystem which care about binary size, you still have more options and can avoid size issues.
What's an example of this for, say, libcurl? On my system it has a tiny number of recursive dependencies, around a dozen. [0] Furthermore if I want to write a C program that uses libcurl I have to download zero bytes of data ... because it's a shared library that is already installed on my system, since so many programs already use it.
I don't really know the appropriate comparison for Rust. reqwest seems roughly comparable, but it's an HTTP client library, and not a general purpose network client like curl. Obviously curl can do a lot more. Even the list of direct dependencies for reqwest is quite long [1], and it's built on top of another http library [2] that has its own long list of dependencies, a list that includes tokio, no small library itself.
In terms of final binary size, the installed size of the curl package on my system, which includes both the command line tool and development dependencies for libcurl, is 1875.03 KiB.
[0] I'm excluding the dependency on the ca-certificates package, since this only provides the certificate chain for TLS and lots of programs rely on it.
- What We Need Instead of "Web Components"
-
ReductStore 1.6.0 has been released with new license and client SDK for Rust
ReductStore was rewritten from C++ to Rust a few months ago. We are delighted to be part of the Rust community and have taken a new step towards Rust with the Client SDK. The SDK is powered by reqwest and enables asynchronous integration of the database into Rust applications:
-
Rust dependency woes
From what I could turn up when googling the specific error lines (here), it has something to do with the crate mio not having support for WASM, but I don’t understand what’s being said on this thread.
-
Using Auth0 with Tauri
You can use the tauri-plugin-deep-link crate to register your app as a protocol handler. After you get your code, you can exchange it for an auth token in the same manner as the Electron guide, but for Rust you can use reqwest for the HTTP call.
-
Authentication system using rust (actix-web) and sveltekit - Automated testing
When starting out, we made some design decisions at the backend. The decision will allow us to independently test the service without interfering with the real application using a term called integration testing. We'll utilize two "dev" packages: reqwest and fake. Dev dependencies only get introduced into your application in development or during testing. In production, they are not included:
-
How can I save a blob:<url> to my hard disk? Im currently using Rust to scrape a website, however I dont even know if that is possible
It's possible, you will want to use crates like https://docs.rs/reqwest/ to download the page and https://docs.rs/scraper/ to extract elements from the page.
-
Becoming Rustacean:Awesome Free Online Resources to Learn Rust Programming
Rust allows me to mainly only run the application to confirm things work from a business perspective.
For people starting out building stuff in rust - understand that there is a distinction of async code and libraries and can lead to confusing compiler errors if you don't realize there is a distinction. It's simple in hindsight but did cause me to waste hours barking up the wrong trees at first. Other wise just learn about `match` and Result/Option types asap, they're fundamental.
https://github.com/http-rs/tide tide is great to create an http server / routes
https://github.com/djc/askama I use this to template out HTML and it checks all my boxes, dynamic data, passing in functions, control flow.
https://github.com/launchbadge/sqlx sql interface for a variety of backend, async safe.
https://github.com/seanmonstar/reqwest http client to make requests
Rust is amazing, don't let the initial few speed bumps discourage you - building real things with rust is no more challenging today than any other modern language stack.
-
This Month in hyper: March 2023
Is there any this month in reqwest? I would like to show my interest in https://github.com/seanmonstar/reqwest/issues/39
-
Reqwest cookies feature not working
The relevant issue seems to be https://github.com/seanmonstar/reqwest/pull/1753
What are some alternatives?
uniffi-rs - a multi-language bindings generator for rust
hyper - An HTTP library for Rust
rust - Empowering everyone to build reliable and efficient software.
curl-rust - Rust bindings to libcurl
Cargo - The Rust package manager
ureq - A simple, safe HTTP client
async-wormhole
Rocket - A web framework for Rust.
bevy - A refreshingly simple data-driven game engine built in Rust
surf - Fast and friendly HTTP client framework for async Rust
trust-dns - A Rust based DNS client, server, and resolver [Moved to: https://github.com/hickory-dns/hickory-dns]
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.