Racket - The noisy Rack MVC framework
Say what?
Yes. It is yet another framework built on rack. Using MVC. Doing silly stuff while you look the other way.
Why? I though there were a gazillion frameworks that did the same thing already...
You are correct. There are lots of Rack frameworks out there. This one does not pretend to do anything special that you could not get from any of them.
So, I have to ask again. Why did you create this monstrosity?
Well, when my web host suddenly started insisting on using Phusion Passenger on all of their servers I needed to replace my old Ramaze setup without to much hassle. I tried several other Rack framework, but none of them seemed capable of replacing my apps without some major rewrites.
So you just though writing a whole new framework would be easier than using Rails?
Yes. Writing Rack frameworks is easy! And since I am able to decide exactly what features I want I don't need to adopt to a large ecosystem of concepts I do not like.
So, is it any good?
Probably not. At the moment it is good enough for my needs, but I plan to add more features/make stuff faster as I start porting more of my old apps from Ramaze.
Where are the tests?
Have a look in the spec directory. The code base have tests covering 100 per cent of the code and I am planning on keeping it that way. At the moment the code is tested using ruby 2.0, ruby 2.1.6 and 2.2.2, but more versions might be added later.
I am using bacon and rack-test for testing. Run the tests by typing bacon spec/racket.rbin the root directory. Code coverage reports are provided by simplecov. After the tests have run the an HTML report can be found in the coverage directory. If you are not interested in running the tests yourself you could also have a look at the test status at Travis CI and the code coverage at Codecov. Their stats get updated on every commit.
Alright, I want to try using this stuff. Where are the docs?
Unfortunately there aren't any docs yet. The main reason is that most things are not finished yet, I am still moving stuff around like crazy. There will be a wiki later and I also plan on documenting the code itself heavily (using Yard).
Why is the code licenced under the GNU Affero General Public License? I want a more liberal licence!
Because I think it is a Good Thing™ to share code. The GNU Affero General Public License licence is very liberal unless you plan on beeing egotistical. I you feel you cannot work with that, please choose something else.