We use it at Sentry for one of our services and the experience has been great. The best part by far is that you can benefit from async io handling without having to write every one of your views in an async fashion. All the async complexity is offloaded into the extractors and the response sending.
I evaluated a few different Rust web frameworks, where performance was the deciding factor. A minimum viable echo server was put through its paces with `h2load` on a relatively recent MacBook Pro. `actix-web` was literally 100x faster than the next fastest competing framework.<p>The benchmark result really confused me. But you'll find that the `actix` actors are extraordinarily lightweight and highly optimized around the equally lightweight and highly optimized Futures. The design is hard to beat, from a performance standpoint.
Actix-web is great! I've adopted it for my projects. I can take <i></i>full<i></i> advantage of what Rust offers for concurrency and safety without going too deep into the weeds. Documentation, a growing number of examples, a very responsive author, and growing community are some of the reasons why I think this project is going to play a major role in Rust's web development story going forward.
> fn greet(req: HttpRequest) -> impl Responder<p>Nice to see front page example using 'impl', the recent most improvement in ergonomics. Before 1.26 things would be different. This makes me more appreciative of the efforts from Rust team/community to improve the ease of use.
I've had relatively good success moving some microservices from Kotlin to Rust (mainly saving about 90% resident memory util).
I picked up Actix recently, and so far I'm enjoying using it. If Rust library support for geospatial tools was as good as turf.js, I'd be able to move a lot more stuff into Rust.
Not sure if I'm missing something, but for the Techempower Bencharks [1] I had the impression that the bottleneck for other rust libraries were in accessing the database rather than handling http requests. However, looking at the code [2] it seems that the Actix solution isn't doing anything special with regards to this. Can someone give a quick description of "what" is causing such a huge performance boost for Actix compared to other frameworks?<p>(I might add that this is a question I've had for a while, and I did not check the source at [2] in detail today.)<p>[1]: <a href="https://www.techempower.com/benchmarks/" rel="nofollow">https://www.techempower.com/benchmarks/</a><p>[2]: <a href="https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Rust/actix" rel="nofollow">https://github.com/TechEmpower/FrameworkBenchmarks/tree/mast...</a>
I tried using actix for a recent project. I just could not get it to do what I wanted to. It always felt like a fight. I switched to rocket and everything is so much easier.<p>Everyone is saying great things about it, but I just want to point out that it's not for everyone.
I recently ported a very small micro service from Rocket to Actix and found the migration to be painless. In fact, it's use of types and inferencing along with integration with Serde made it very easy. It also worked on stable-rust and can work with connection pooling against postgres. This makes it a winner in my mind.<p>I'm excited to use it again in my next service.
Browsing thru Actix guide (<a href="https://actix.rs/actix/guide/" rel="nofollow">https://actix.rs/actix/guide/</a>), I didn't find any explanation regarding what will happen when actor(s) crashes or how crashes[1] are being handled?<p><a href="http://wiki.c2.com/?LetItCrash" rel="nofollow">http://wiki.c2.com/?LetItCrash</a>
I came across this the other day while looking into Flow, the C++ extension used to write FoundationDB. This Github issue asks about a benchmark on which Flow claims really good results:<p><a href="https://github.com/actix/actix/issues/52" rel="nofollow">https://github.com/actix/actix/issues/52</a><p>Actix does pretty well too.
What a great looking site. I've been really exciting about actix for a while now. We just started some internal experiments with it here and I'm looking forward to more.
I have just started playing with Actix-web. Rust-Noob as well. The yellow world example compiled to a binary that was ~ 5 MB.<p>As a general case, Actix-web pulls in a lot of dependencies at install, and compile time.Are all of those dependencies really necessary for a hello world scenario?<p>Being a Rust newbie, I thought maybe I was using the wrong tool and started to look at hyper instead..
I've recently been building an IRC bouncer and webapp with Actix, and it's been really smooth sailing so far -- excellent documentation, extensive examples, and everything I've touched so far has just worked the way you'd expect it to. It's a gem of a project.
This looks really nice! I learned Scala primarily to use the Play Framework which is a fabulous way to build large web applications. This looks spiritually quite similar, but with the advantages of Rust.
Why do so many Rust projects lead with telling you their number one feature is type safety? It’s Rust we get it, stop telling us about your type safety!<p>Also, what problem is this solving that countless other near identical web frameworks don’t already solve?