flume
trust-dns
flume | trust-dns | |
---|---|---|
14 | 14 | |
2,168 | 3,254 | |
- | - | |
4.4 | 7.1 | |
about 2 months ago | 7 months ago | |
Rust | Rust | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
1: https://github.com/zesterer/flume
- 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.
trust-dns
-
Hickory DNS
If you don't know what is Trust-DNS / Hickory DNS, this seems to be the repo: https://github.com/bluejekyll/trust-dns
-
You might want async in your project
IO is not a part of the async runtime contract (I don't know if this is good or bad), and Tokio & futures famously have different `Async{Read,Write}` traits. I once had to do this [0] to adapt between them.
This means that any crate that uses IO will be bound to a limited number of Runtimes. Everything being Tokio-only is pretty bad (though Tokio itself is great), but here we are...
[0] https://github.com/bluejekyll/trust-dns/pull/1373#issuecomme...
-
Extract cert.pem and privkey.pem from acme.json
I need a cert.pem and privkey.pem for https://github.com/bluejekyll/trust-dns but even using the extractor to get a cert.pem and privkey.pem from the acme.json file it seems invalid.
-
What would you rewrite in Rust?
You might be interested in Trust DNS - "A Rust based DNS client, server, and Resolver, built to be safe and secure from the ground up."
-
Announcing `async-dns`
It looks like you need to reach for a separate crate for that: https://github.com/bluejekyll/trust-dns/blob/7dcb7b983f5407d95d93b800af13caeee975aaa8/crates/async-std-resolver/src/lib.rs
- Trust-Dns - A rust based dns client, server, and resolver
-
What I learned from making a DNS client in Rust
You might be interested in new alternative to dig called dns https://github.com/bluejekyll/trust-dns/blob/main/util/src/dns.rs . I found out about it from https://twitter.com/benj_fry/status/1513269287229657091
- Show HN: A Trust-DNS based dig alternative
-
Docker: Binary compiled with Musl works but not the one compiled with glibc
I've found the Trust-DNS Resolver crate and it does the job! Now the binary seems to not use any dynamic library to look up the ip of a host.
What are some alternatives?
uniffi-rs - a multi-language bindings generator for rust
parity-bitcoin - The Parity Bitcoin client
rust - Empowering everyone to build reliable and efficient software.
woodpecker - Drill is an HTTP load testing application written in Rust
Cargo - The Rust package manager
citybound - A work-in-progress, open-source, multi-player city simulation game.
async-wormhole
Parallel
bevy - A refreshingly simple data-driven game engine built in Rust
rsedis - Redis re-implemented in Rust.
reqwest - An easy and powerful Rust HTTP Client
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.