Hacker News new | past | comments | ask | show | jobs | submit login

I wouldn't call Actix the most mature, but it's definitely the one that gets talked about the most.

I built a fairly complex backend directly on top of Hyper[0] (it doesn't even involve that much glue, really) in 2016 and have updated it as Rust and Hyper have matured. It's actually a delight to work on, and I brought a new hire on board recently who had no trouble getting up to speed, since everything is just straightforward, idiomatic Rust.

I've looked at basically every Rust "web framework" that's been released since 2016, and I can't see any of them simplifying the codebase enough to justify using them. Quite a few of these frameworks result in code that isn't obvious to a Rust programmer who hasn't used that framework before, too, which I consider a disadvantage (I prefer obvious over clever).

[0] edited to add for those that may not be aware: Hyper is a client & server HTTP library. Many/most of the frameworks are built on top of it.




Yeah I agree with this. I am working on an API backend in Rust too, and I originally started out writing it using actix-web.

After the concerns about the massive use of unsafe in actix-web in the past I grew a bit concerned and already made me think about going away from using actix-web.

When I started looking at upgrading to actix-web 2.0 there was a lot of rework needed to be done, but very lacking documentation.

I also reached out and got some help from the maintainer of actix-web a few times prior to that but he was always really really brief and for me personally it was difficult to make sense of. Of course I understand that he can’t spend his time helping everyone as that would take up all his time. But from purely a developer point of view, the docs were too lacking for me, and everything felt quite convoluted to try and make sense of.

I was left feeling frustrated because actix-web was so hyped and seemingly popular but for me it was difficult to work with.

I switched to hyper and so far am happy with my decision. I am not going to touch actix-web again anytime soon, but that is only my personal opinion and feeling.


> I wouldn't call Actix the most mature

Surely? I try several other for replace my .NET core project, and Actix is the only one that barely get there.

Which other handle without much fuzz:

- Auth (big!) - Routing with state and db pooling - Forms - Templates - Encode/Decode all stuff (query string, headers, etc) - Allow to inject middle-wares - Have (at least) the bare minimum of functionality like gzip encoding - And many other small details I forget now

I have worked, alot, with django, then use .net core and now Actix, and the others rust frameworks are lacking badly as far I see.

What I see the rust ecosystem is lacking now is mostly around templating (need more love for dynamic options!) and some stabilization around rdbms usage..


Actix has a lot of features, but to me that's not the same as maturity. I don't want one "batteries-included" framework, I want components (preferably mature and relatively boring) with well-defined interfaces that I can use together to build my backend.


Thats is fine, but is surprising how many stuff you need to make a semi-complex site. Is better for a ecosystem to have the "batteries-included" framework that cover the needs of many and then specialize.

Django, ROR pull a lot of people into.


I ended up building my own l framework for my use case (about 30KLOC NMS, all Rust) - http://github.com/ayourtch/rsp10 - would be interesting to hear your critique if you have a minute to look at it!


Actix smashes a lot of benchmarks. For the regular dev/company in production use have no idea why people would use it.

Hyper seems the sane option for most trying to simply build a backend.

It's really good to see others building on it though. Won't deny how clunky it once was before async got stabilized.


You have to adjust the filters, because hyper isn't considered a "framework", but the TechEmpower benchmarks show hyper beating even actix (though it's narrow).

Definitely agree things were pretty clunky for async Rust web stuff before async/await!


The sugar is real nice with async/await, plus some performance improvements. I got all excited upon release and moved my backend over to async, do somewhat regret not waiting 6 months.

Docs are sparse, this is across all the various crates needed, a bunch of required interoperable parts all needing specific alpha versions or separate preview crates.

Can't deny it's not user friendly right now. Very much early days.

Regardless, a lot of effort was put into the design and have to respect core devs for that. Think it was the most discussed/debated feature ever.


Async-await is a game changer for all async rust development. Futures combinators became a sunk cost. Good riddance.


That's good to know! I got burned pretty bad trying to switch away from actix-web to one of the other frameworks (rocket, gotham, warp) after the whole kerfuffle and lost my taste for Rust as a backend web language as a result. Seeing your experience makes me want to try again with only hyper! I've always heard it was too "low level" and never gave it a proper look as a result.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: