Ogeon/rustful

Why rustful instead of iron?

Closed this issue · 6 comments

What are the differences between rustful and iron? Is there a better use case for this?

Good question. The main difference is that Iron is actively worked on. I put Rustful on ice this summer because of a lack of time. I had to focus on my university studies and it became hard to keep up with the other frameworks.

I haven't kept track of iron for a while, but I think they are using a different routing structure and it has some more features (not surprising). I don't know why someone linked to this, but it seems like it caught the interest of some people. Maybe it's time to revive it...

Edit: Rustful is alive again, but there are still things to do and contributions are most welcome. To answer the original question: The purpose of Rustful is to get rid of some of the boiler plate code when writing a REST server, without too much fuss. Iron is, as I understand it, aimed towards a higher level with some other abstractions and quite a different API.

put Rustful on ice this summer because of a lack of time

Maybe consider to link to https://github.com/rustless/rustless in the README?
I think @s-panferov is making a solid rust rest api framework, but it isn't as known as this one.

@bennyklotz thanks for your attention. I just want to bring the Grape functionality to Rust because I 😍 Grape. Rustless is a high-level all-in-one solution for APIs with some nice things like valico, queryst and jsonway included.

I like what @reem does. Iron is a very good working solution. And I think that Rustless and Iron focuses on a little bit different things. Iron is much more low-level and oriented for extensibility. I even have thoughts about connecting Rustless's API subsystem with Iron to provide a solid solution and throw out all server functionality from Rustless. But right now they are not compatible because Rustless uses Hyper as HTTP Server.

@reem are you going to use Hyper in near future?

reem commented

Yup! There's a tracking issue in Iron (iron/iron#172) for it and I plan to move over once we get Hyper to a more stable state.

On a separate note, I'd love to have layers over Iron - it's meant to be built upon and provide an extensible base, not be the-only-way.

Thanks for the suggestion and it looks like some good stuff. I know that I have been inactive for some time, but I have still been thinking about what I want to do with Rustful. I have more or less decided to revive it, but I haven't had enough free time to really dive into it, until this weekend. I do still think that there may be room for a lower level micro framework, so I'll give it a try and see what happens.

Things went better than expected. Bringing it back to life wasn't too tricky and it should be usable with the nightlies when SignedInt lands. It's still quite clunky and I haven't managed to benchmark the router yet (the benchmarks seems to go for an eternity, but the other tests works, so it's hard to pinpoint the problem), but that will be dealt with in time.

I do also think that this issue has fulfilled its purpose for now.