tower
async fn(Request) -> Result<Response, Error> (by tower-rs)
opentelemetry-rust
The Rust OpenTelemetry implementation (by open-telemetry)
tower | opentelemetry-rust | |
---|---|---|
14 | 10 | |
3,269 | 1,639 | |
1.2% | 4.7% | |
2.1 | 9.5 | |
30 days ago | about 15 hours ago | |
Rust | Rust | |
MIT License | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
tower
Posts with mentions or reviews of tower.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-10-07.
-
Collection of trait implementations with associated types (GATs?)
This question is partially inspired by this PR which is kinda trying to do the same thing.
-
dd-trace-layer - A web application middleware for sending Datadog's trace
dd-trace-layer is a middleware for sending Datadog's trace. It's based on Tower and OpenTelemetry Rust.
-
GCP firestore and logging SDK in rust
I'm pretty sure that GCP's APIs (unlike AWS, which uses Smithy for very genuinely, very good reason) are defined using Protobuf and can be communicated with over gRPC, which means that you don't need to bind via cxx to GCP's C++ APIs. Take a look at this example using Tonic. If you're to use Tonic, you'll also be able to use Tower's middleware (main crate, http-specific) to implement retries, timeouts, tracing, and all the other things you need to be production-ready.
-
Which Rust web framework to choose in 2022 (with code examples)
#[derive(Clone)] struct MyMiddleware { inner: S, } impl Service> for MyMiddleware where S: Service, Response = Response> + Clone + Send + 'static, S::Future: Send + 'static, { type Response = S::Response; type Error = S::Error; type Future = BoxFuture<'static, Result>; fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { self.inner.poll_ready(cx) } fn call(&mut self, mut req: Request) -> Self::Future { println!("before"); // best practice is to clone the inner service like this // see https://github.com/tower-rs/tower/issues/547 for details let clone = self.inner.clone(); let mut inner = std::mem::replace(&mut self.inner, clone); Box::pin(async move { let res: Response = inner.call(req).await?; println!("after"); Ok(res) }) } } fn main() { let app = Router::new() .route("/", get(|| async { /* ... */ })) .layer(layer_fn(|inner| MyMiddleware { inner })); }
-
How to schedule and run cron jobs in Rust using apalis
For this tutorial, we're going to use apalis to run cron jobs in an async context. We will also look at how to decorate our jobs with tower middleware allowing us to unlock features like retries, prometheus, sentry etc
-
Warp or Rocket.rs or Actix Web?
So I have now had a look at Axum and think I will give it a try. In the readme in the repository it says something about tower or tower::Service and tonic, what exactly is that? I do not understand that yet.
-
tower-lsp 0.16.0 — Lightweight framework for building LSP servers
Better compatibility with tower ecosystem.
-
ratpack: a simpleton's HTTP framework
ratpack is idealized in the simplicity of the sinatra (ruby) framework in its goal, and attempts to be an alternative to other async HTTP frameworks such as tower, warp, axum, and tide.
-
When and how to use traits?
i would browse the standard library, tower, nom, or my own bitvec to see layout and trait/record separation. in particular, std::io and std::net may be of use: io::Read and io::Write are pervasive examples of implementing unixy file-descriptor-like behavior in the type system
-
I could use some help!
We're not there yet. I keep an eye on Tower which looks promising to build on top of. And I keep an eye on MoonZoon (full stack framework, unashamedly opinionated!).
opentelemetry-rust
Posts with mentions or reviews of opentelemetry-rust.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-04-07.
-
Datadog APM
I believe if you set up an Open Telemetry tracer, you can use the Datadog Lambda Extension to send those traces (as well as logs and some additional lambda metrics) to Datadog.
-
Good APM for api's ?
A lot of APM products these days support OpenTelemetry in addition to their custom APM agents. You could try using https://github.com/open-telemetry/opentelemetry-rust paired with an APM provider that works with OpenTelemetry.
-
Trace Through a Kafka Cluster with Rust and OpenTelemetry
(Source: https://github.com/open-telemetry/opentelemetry-rust/blob/main/examples/http/src/client.rs)
-
Should Rust have something like go generate?
Here’s a recent example: https://github.com/open-telemetry/opentelemetry-rust/pull/881
-
dd-trace-layer - A web application middleware for sending Datadog's trace
dd-trace-layer is a middleware for sending Datadog's trace. It's based on Tower and OpenTelemetry Rust.
-
Hey Rustaceans! Got a question? Ask here! (35/2022)!
I plan to use OpenTelemetry for my async project, but I'm a bit unclear about whether to use the `tracing`, native `opentelemetry` or even the `tracing-opentelemetry` crate? Both tracing and opentelemetry support instrumenting async/await code. What is the relationship between tracing and opentelemetry? If Otel is trying to standardize a spec for observability across languages and vendors and supports async/await rust code, what's the motivation to learn the `tracing` crate's API at this time?
-
Guide to OpenTelemetry Distributed Tracing in Rust
The git repository called opentelemetry-rust contains implementations of several crates that expand the opentelemetry ecosystem. There you can find common instrumentations, exporters, and subscribers use them in a Rust program.
-
For the OpenTelemetry fans, a quick guide to OpenTelemetry tracing in Rust
Not sure about the Aspecto exporter you are using but the last time I tried to use the Jaeger one it seemed fundamentally broken if you had even a moderate amount of spans in a way that keeps popping up and the developers keep closing with various suggestions for workarounds (on the issues of previous people encountering it) that did not work for me ( https://github.com/open-telemetry/opentelemetry-rust/issues/851 ).
-
Profiling rust code with callgrind
You could give open telemetry a try. I've been meaning to check it out, but haven't had a chance yet. https://github.com/open-telemetry/opentelemetry-rust
-
RillRate - embeddable real-time tracing dashboard (full-stack Rust!)
Would love to see this work with OpenTelemetry: https://github.com/open-telemetry/opentelemetry-rust
What are some alternatives?
When comparing tower and opentelemetry-rust you can also consider the following projects:
hyper - An HTTP library for Rust
tracing - Application level tracing for Rust.
tower-lsp - Language Server Protocol implementation written in Rust
tracing-newrelic - New Relic integration for tracing
tower-http - HTTP specific Tower utilities.
unbound-telemetry - Prometheus exporter for Unbound DNS resolver
bitvec - A crate for managing memory bit by bit
Go-GRPC-Auth-Microservice - Go GRPC Auth Microservice
apalis - Simple, extensible multithreaded background job and message processing library for Rust
rillrate - Real-time UI for bots and tools
h2 - HTTP 2.0 client & server implementation for Rust.
prometheus-gravel-gateway - A Prometheus Aggregation Gateway for FAAS applications
tower vs hyper
opentelemetry-rust vs tracing
tower vs tower-lsp
opentelemetry-rust vs tracing-newrelic
tower vs tower-http
opentelemetry-rust vs unbound-telemetry
tower vs bitvec
opentelemetry-rust vs Go-GRPC-Auth-Microservice
tower vs apalis
opentelemetry-rust vs rillrate
tower vs h2
opentelemetry-rust vs prometheus-gravel-gateway