Ogeon / rustful

[OUTDATED] A light HTTP framework for Rust
https://docs.rs/rustful
Apache License 2.0
862 stars 51 forks source link

Why rustful instead of iron? #5

Closed johnjelinek closed 10 years ago

johnjelinek commented 10 years ago

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

Ogeon commented 10 years ago

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.

tak1n commented 10 years ago

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.

s-panferov commented 10 years ago

@bennyklotz thanks for your attention. I just want to bring the Grape functionality to Rust because I :heart_eyes: 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 10 years ago

Yup! There's a tracking issue in Iron (https://github.com/iron/iron/issues/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.

Ogeon commented 10 years ago

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.

Ogeon commented 10 years ago

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.