What does HackerNews think of actix-web?

Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Language: Rust

#15 in Rust
#1 in PHP
For those who aren't aware, this wasn't actually the end of the story; the original author ended up deciding to let someone else take over after all, and actix is still actively developed and used: https://github.com/actix/actix-web
No I am not referring to that thread. I am referring to the thread further down where someone compares using a memory unsafe language to an illegal activity.

If you need an example of the rust community being toxic, I give you https://github.com/actix/actix-web

Look up the history and realize they bullied an open source project leader into leaving open source for good.

- Actix Web https://github.com/actix/actix-web

- Axum https://github.com/tokio-rs/axum (what I'm currently using in production)

- Hyper https://github.com/hyperium/hyper

Positive experiences mostly. If it builds, it'll usually run with no issues. Ecosystem is mature enough for large production apps.

For Rust, I am using Actix https://github.com/actix/actix-web . Without better definition of "secure" and "performance" there is no way to help you.

Both of them are used and exposed publicly by numerous companies, so ootb they good enough for any API. For 99.999% percent of people both are performant enough. Rust will win on memory usage, in some cases significantly, and will win on performance by a smaller margin, but run your own benchmark.

This is an interesting article about why npm uses Rust instead of something else: https://www.infoq.com/news/2019/03/rust-npm-performance/

>performance of the framework is very important

No, its not. Whatever you do with it, will be 100-1000x slower than what framework does. Making decision on something that takes 0.01% of time spend on request handling makes no sense. Optimize your code and data sources, don't worry about framework,

> Also why do you prefer that language?

Tons of modern features. Algebraic data types (this eliminates null-pointer errors completely, which you can't say about Go), generics, borrow checker, pattern matching, macros, general focus on correctness of your code. All of that composes nicely and allows to produce correct and readable code.

I used rocket (https://rocket.rs) mostly because at the time (Nov '19) it seemed to be the one with by far the best documentation. I think that these days, I would probably go with actix (https://github.com/actix/actix-web), because rocket does not appear to me as being actively maintained and not having async support (yet? there is a branch..) means I need workarounds to integrate with libraries that are async only.

But still, rocket is pretty great. Implementing an endpoint is as simple as a few lines and great integration with serde as well as diesel means you can integrate pretty quickly.

I saw "actix-web" and I thought to myself...

"That odd, that project is dead now. Why release something dependent on it?"

But then I went to the actix-web git repo and low and behold it is not dead.

Then scratching my head, I re-read this post from my history:

https://words.steveklabnik.com/a-sad-day-for-rust

Clearly stating the actix-web project was dead and I recall going to the link in the article to: https://github.com/actix/actix-web that had a post from the maintainer stating that the project was dead.

Anyone know what is going on with this project?

Just like the author of actix-web decides to exit from his popular Rust open source project recently(https://github.com/actix/actix-web). As a maintainer of large open source project is not a fun task. whatever mental or physical, it's really a hard job.

Respent for every maintainer and contributor, it's not easy. You can read some issues in the repository, the authors of some issues are just complaining or criticizing the idea or bug, it's unfair and rude. in the end, hurt maintainer's passions. Every developer should know it and respect it like the README or guideline before posting issues or comments.

It's a fantastic post about the analysis of OSS maintainer, Respect for Mr. Gallant.

The benchmarks leader "actix-web" was not really regular/typical rust, and conflict with the "community" caused it to implode. see https://github.com/actix/actix-web/ and https://news.ycombinator.com/item?id=22075076
The repo currently contains a single README.md.

https://github.com/actix/actix-web

Edit: I was not aware he moved it under his personal github account and it’s still accessible. Nonetheless, I still think removing it is a bit extreme.

I believe he already included that in the README https://github.com/actix/actix-web
IMO, the most telling point of this is when the author rejected a security patch because it was not creative enough. He was more of an artist than an engineer.

What was the patch? It was very strait forward, simple, uncreative change, intention was just to remove unsafe not to fix existing code. I believe software development is one of the most creative work we do, and creativity is part of why we love software development, why it is fun. Especially if you combine it with real world projects constraints. “creative constrains” could be source of very interesting solutions. Being on the edge of your abilities is super fun. So uncreative change felt boring https://github.com/actix/actix-web

He said he is going to move it to private in his [post mortem](https://github.com/actix/actix-web)
According to https://github.com/actix/actix-web, it appears that the author did accept the security concerns (when an actual use-after-free was found, but maybe not the previous, generic “unsafe oh noz” shitstorms), and wanted to explore some other way to fix the problem instead of accepting the patch as is.

Just because there’s a patch that fixes the issue doesn’t mean the maintainer has to merge that patch.