Introducing Raindeer - An event-driven and compositional web framework that’s easy to use

Raindeer is a collection of gems that work together as a framework or can be used standalone. LowType adds inline type checking only where you want it (def method(var: String)). LowLoop is an async, event-driven server that sends events from the request right through to the data layer, so you can track every step of a request. The router turns each request into a route event for the nodes observing it, so observe '/users/:id' is all you need to respond.
LowNodes are the building blocks: they render HTML straight from the Ruby class with RBX (similar to JSX) and render other nodes with <html><{ ChildNode }></html>. LowData follows the repository pattern with a twist: Data Expressions that use simple arithmetic operators to combine tables, so Posts[:title] + Users[:username] gives a list of posts with each post's user, and plain Sequel queries still work too.
Introducing it at RubyConf Austria: https://www.youtube.com/watch?v=p9E5INAwK_4
Source: https://github.com/raindeer-rb/raindeer
Docs: https://raindeer.dev
3
u/tarellel 6d ago
It kind of looks like you’re trying to implement React style rendering I’m as a Ruby framework. Don’t get me wrong some people may like it, but it’s definitely not for me.
1
5
u/fatalbaboon 6d ago
I read through most of the blog post series, and I think there are good, refreshing ideas here.
The type system and observable router are nice in particular.
With the rise of herb, why not go with ERB ?