Draft:Roda (software)

Roda is a free and open source software web application library written in Ruby. It is an alternative to other Ruby web application frameworks such as Sinatra_(software) or Ruby on Rails. It is dependent on the Rack web server interface. Initially released with the moniker Sinuba, drawing influences from the Sinatra and Cuba web frameworks, it was later named Roda, after the Roda trees which appear in the Ys_(series) of games.

Roda is developed by Jeremey Evans, who is also the lead developer of the Sequel database library, the Rodauth authentication framework, and many other Ruby libraries. He is the maintainer of Ruby ports for the OpenBSD operating system, and has contributed to CRuby and JRuby, as well as many popular Ruby libraries.

Roda started out as a fork of the Cuba framework, from which it borrows the idea of using a routing tree (which Cuba in turn took from RUM . From Sinatra, it takes the ideas that route blocks should return the request bodies and that routes should be canonical. Roda’s plugin system is based on the plugin system used by the Sequel ORM.

Roda is a lightweight library. The basic features enabled by default are implemented in fewer than 800 lines of code. However, Roda ships with over 100 plugins that can handle the needs of most web applications.

Some notable uses of Roda include Bridgetown Site Generator and Ubicloud.

Routing Tree
Roda performs routing by implementing what it calls a routing tree. The primary advantage of the routing tree is that request handling and routing are integrated, so that we can handle a request while routing it. This can remove a lot of duplication inherent in web frameworks that separate routing from request handling.