tower
bloom
Our great sponsors
tower | bloom | |
---|---|---|
14 | 28 | |
3,258 | 1,564 | |
2.6% | -0.4% | |
2.1 | 2.0 | |
13 days ago | about 1 year ago | |
Rust | Rust | |
MIT License | 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.
tower
-
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!).
bloom
-
Rust for web development: 3 years later
Static linking is remarkably easy: Creating small Docker images is a delight.
-
How to create small Docker images for Rust
As a data point, I've served millions of HTTP requests using it, without problems.
-
Which Rust web framework to choose in 2022 (with code examples)
For larger projects, I think that actix-web is the incontestable winner. That's why it's my choice for Bloom.
- The all-in-one Open Source Inbox, Calendar, Files, Contacts and much more
- Very exciting development! Do you think our lord and savior is working on Bloom 3?
-
Ask HN: Are you passionate about your career in software
For me the worst part was not the job itself (I did ML related stuff) but the environment (commuting, artificial light all day long...).
Since I moved to the entrepreneurship track I'm way more happy. At first it doesn't pay so you need to have savings, but after some time (depends of the person) you start making a living and you can decide on what to work on.
Today, half of my time is dedicated to writing software that I genuinely believe have a positive impact on the world (https://github.com/skerkour/bloom), and half of my time is dedicated to writing and sharing (I'm writing a book).
The best thing that I've understood is that even if my primary skills are programming and architecture related stuff, it doesn't mean I have to code for a living. There are a lot of jobs related to programming that you can switch to.
- skerkour/bloom: The simplest way to de-Google your life and business: Inbox, Calendar, Files, Contacts & much more
-
Newbie questions on design patterns in Rust
Hi, I'm not a video game programmer, I mostly do network and web programming, but I do exactly this in Rust and it works very well. Here is an example for a mailer driver, which is a trait and then implemented for multiple "backends" such as AWS SES or SMTP https://github.com/skerkour/bloom/blob/main/bloom/kernel/src/drivers/mailer/mod.rs.
-
Looking for an open-source project to join part-time
What do you think about degoogle project open source => https://bloom.sh/ " The simplest way to de-Google your life and business: Inbox, Calendar, Files, Contacts & much more ".
-
Rust OwnCloud
What do you think about degoogle project open source => bloom.sh " The simplest way to de-Google your life and business: Inbox, Calendar, Files, Contacts & much more ".
What are some alternatives?
hyper - An HTTP library for Rust
wgpu-rs - Rust bindings to wgpu native library
tower-lsp - Language Server Protocol implementation written in Rust
cargo-chef - A cargo-subcommand to speed up Rust Docker builds using Docker layer caching.
tower-http - HTTP specific Tower utilities.
Triox - A free file hosting server that focuses on speed, reliability and security.
bitvec - A crate for managing memory bit by bit
black-hat-rust - Applied offensive security with Rust - https://kerkour.com/black-hat-rust
apalis - Simple, extensible multithreaded background job and message processing library for Rust
degoogle - A huge list of alternatives to Google products. Privacy tips, tricks, and links.
Tide - Fast and friendly HTTP server framework for async Rust
yakuza-freecam - Yakuza Freecam Tool made in Rust