Is there any unbloated http framework or library you can suggest?

I am looking to move away from actix. It is really nice but supports too many things and literally changing a whitespace and doing a debug compile takes around 6 minutes which is really not suitable when I am trying to debug and understand something.
What I am looking for is a very basic library or framework which should do routing and thats pretty much it.
I really dont want any fancy traits or macros which I believe to be causing all those compile time issues with actix.
the only "MUST" for me is the async support.

async support

Is the compile time hard hitter, likely. There are a number of issues with the current compiler which make compiling async code more costly than it strictly needs to be.

That said, I've seen ureq recommended often as a minimal nonasync http library.

What about using hyper with routerify for the routes?

3 Likes

Hi,

Iā€˜m using tide and find it really great, easy and straight forward to use. It also provides routing.

routify seems exactly what i need I tried to use hyper in the past but it was simply too compicated and not straightforward. I remember banging my head to the desk trying to get certain things out of the request or into the response

tide seems pretty much what I want but It depends on async-std but pretty much everything else I use depend on tokio which means I would have to run 2 different runtimes and somehow make them work together

the problem with the nonasync is that I will be wasting a lot of resources sitting and waiting. My app doesnthave millions of users but I have relatively high number of simultanious requests to serve and many of them send other requests out as well in case of async I can still utilize those threads while the requests are being made but in threading case I probably will be able to serve half of those clients in time and I would need to scale my app much earlier than I would in async
Please someone do correct me If I am thinking something wrong at some point or if I am misinformed about async

It does certainly sound like async is a good fit for your library. Note also that ureq is a request library. Not an http server library.

From what you've said, I do think that routerify with hyper sounds like the best option. If you run into further trouble with getting stuff in or out of the hyper request/response, I recommend asking the question here or in the Tokio discord. I can definitely help you with those kinds of problems.

I am trying to use routerify with hyper but it doesnt even support reading http bodies I

We're discussing this on the Tokio server, but for any future visitors, hyper definitely supports reading the body of a request. Hyper is the backbone of most http server libraries in Rust, so it supports anything they support.