Roda (software)
| Original author(s) | Jeremy Evans |
|---|---|
| Initial release | July 2014[1] |
| Written in | Ruby |
| Engine | |
| Type | Web application framework |
| License | MIT License |
Search Roda (software) on Amazon.
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.[2]
Roda is developed by Jeremy 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.[3]
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[4]. [2] 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.[2]
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.[5]
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.[6]
Example
require "roda"
class App < Roda
route do |r|
name = "Roda"
r.on "hello" do
"Hello, #{name}!"
end
r.on "goodbye" do
"Goodbye, #{name}!"
end
end
end
References
- ↑ "Roda: The routing tree web framework". code.jeremyevans.net. 20 November 2014. Retrieved 2023-02-01.
- ↑ 2.0 2.1 2.2 Jeremy Evans (2014). "Roda Routing Tree Web Framework Presentation, SacRuby Meetup, November 2014". Retrieved 2023-02-02.
- ↑ "Interview with Jeremy Evans, Lead developer of Sequel & Roda". 2021. Retrieved 2023-02-02.
- ↑ RUM)
- ↑ Iachetti, Federico (2019). "Mastering Roda - About Roda". Retrieved 2023-02-02.
- ↑ Iachetti, Federico (2019). "Mastering Roda - About Roda". Retrieved 2023-02-02.
Further reading
This article "Roda (software)" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Roda (software). Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
