Rubidium is an HTTP framework focused on a hierarchical and intuitive resource fetching model where each file is renderer based on its kind. This model allows a maintainable server structure and an abstracted file rendering process.
Standard services and utilities
- Server, it abstracts the process of comunication with clients and uses the middleware
- Renderer, it's in charge of selecting a rederer for the request file and process it
- File Cache, it reads the files from the hard disk and keep them in memory
- Router, it maps the tracked folders and translates the http route into a file in disk
- SQL Database Connector (currently PostgreSQL Connnector), it provides multiple connections to one database and handles sql queries
Those processes can comunicate among them using primitives exposed to the aplication with an unique name. The application module support launching processes from any of the services, besides its allows including services at the beggining of the application extending its functionalities.
Clone the project
git clone https://github.com/albertoaer/rubidium.git
Launch it using rake
rake run
All the servicies and utilities are loaded into the application at main.rb
Public files served by the application server are located at public folder
If you notice the lack of a renderer or want a custom one, add it to the renderers folder and use
it at the Renderer in the main application file for an extension
- Routing system of mounted folders like ./public and ./exposed/pwa
PostgreSQL
database connection and queriesTemplate
rendering- Ruby HTTP
Controllers
Session
cookie- Error handlers and redirections
- Early
PWA
support - Configuration folder system called Vault
Cache
layers for fast response to parameterized requests- Custom
Web Components
fully written inRuby
with Opal