tcpproxy
console
tcpproxy | console | |
---|---|---|
3 | 20 | |
111 | 3,221 | |
- | 3.9% | |
5.3 | 8.4 | |
3 months ago | 1 day ago | |
Rust | Rust | |
MIT License | MIT License |
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.
tcpproxy
-
Learning Async Rust with Too Many Web Servers
Thanks. Perhaps I did go overboard with that disclaimer.. probably because I myself made the mistake of initially using [0] the oh-so-convenient tokio::io::copy() instead of writing my own copy method that would drop the other half of the connection when one side was closed.
The copy_with_abort() routine is still taking the easy way out in this not-optimized-for-heavy-production-use sample because it uses a broadcast channel per connection to reactively signal that the other half of the connection should be closed (rather than timing out every x ms to see if an abort flag has been set). In the real world, I'd probably replace the join! macro with a manual event loop to be able to do the same but without creating a broadcast channel per-connection.
(I maintain an extremely lightweight "awaitable bools" library for rust [1] that is perfect for this kind of thing (roughly equivalent to a "bounded broadcast_channel<()> of queue length 1, but each "channel" is only a single (optionally stack-allocated) byte) — but it's for event loops in synchronous code and not async executor compatible.)
[0]: https://github.com/mqudsi/tcpproxy/commit/0164ef836a49f2f738...
[1]: https://github.com/neosmart/rsevents
- Example of tcp proxy using tokio?
console
-
Rust Tooling: 8 tools that will increase your productivity
tokio-console is a debugger for Rust async programs that use Tokio. To get started, add the console-subscriber crate to your project and add the following line which will initialise the subscriber and allow tokio-console to connect to it:
-
How to detect lock contention in rust?
You could try https://github.com/tokio-rs/console to debug and profile what happens with tokio tasks in your program.
-
Using Rust at a startup: A cautionary tale
The tokio-console CLI is a fun one. The console-subscriber supports shipping to a console server running elsewhere, apparently. That gives you a window into what's happening now.
-
Hey Rustaceans! Got a question? Ask here! (42/2022)!
Tokio console maybe? https://github.com/tokio-rs/console
-
use both of tracing-subscriber and tokio-soncole
If I add "console_subscriber::init()" line as https://github.com/tokio-rs/console recommends, tracing_subscriber cannot be initialized.
-
Any recommendations for profiling High performance rust code?
I'm building an HTTP load tester called pdc! I have run out of obvious (to me at least) places to look for performance gains. I'm achieving around 45,000 requests per second, per core. Right now I'm using hyper with a separate tokio runtime (in current thread mode) running on each core. So far having runtime on each core/NUMA node has really helped with cache coherency. Any recommendations for profiling beyond tokio console or tokio metrics (Convenient timing amirite!)?
-
Announcing `tracing` 0.1.30 with experimental `valuable`support!
It was just an accident and has been fixed https://github.com/tokio-rs/console/issues/270.
-
[Question] Is Tokio a poor fit for non-network related concurrent applications?
P.S. Tokio [now also has Tokio Console](https://github.com/tokio-rs/console) allowing you to conveniently troubleshoot your tasks if they are causing issues :)
-
How do I profile a Rust web application in production?
You can opt-in to async runtime such as tokio, and you can use tokio-rs/console for it's top-like metric
- `tokio::spawn` to handle `actix` message doesn't wait?
What are some alternatives?
rsevents - Auto- and manual-reset events for rust
mirage - MirageOS is a library operating system that constructs unikernels
glommio - Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.
tracing - Application level tracing for Rust.
sea-orm - 🐚 An async & dynamic ORM for Rust
loom - Concurrency permutation testing tool for Rust.
tarpc - An RPC framework for Rust with a focus on ease of use.
prost - PROST! a Protocol Buffers implementation for the Rust Language
evcxr
delve - Delve is a debugger for the Go programming language.
pdc
ferros - A Rust-based userland which also adds compile-time assurances to seL4 development.