Skip to content

Lennarb is a lightweight, fast and easy for building modular web applications and APIS with Ruby.

License

MIT, MIT licenses found

Licenses found

MIT
LICENCE
MIT
license.md
Notifications You must be signed in to change notification settings

aristotelesbr/lennarb

Lennarb

A lightweight, fast, and modular web framework for Ruby based on Rack. Lennarb supports Ruby (MRI) 3.4+

Test Gem Gem MIT License

Table of Contents

Features

  • Lightweight and modular architecture
  • High-performance routing system
  • Simple and intuitive API
  • Support for middleware
  • Flexible configuration options
  • Two implementation options:
    • Lennarb::App: Minimalist approach for complete control
    • Lennarb::Application: Extended version with common components

Implementation Options

Lennarb offers two implementation approaches to suit different needs:

  • Lennarb::App: Minimalist approach for complete control
  • Lennarb::Application: Extended version with common components

See the documentation for details on each implementation.

Installation

Add this line to your application's Gemfile:

gem 'lennarb'

Or install it directly:

gem install lennarb

Quick Start

require "lennarb"

app = Lennarb::App.new do
  config do
    mandatory :database_url, string
    optional :env, string, "production"
    optional :port, int, 9292
  end

  routes do
    get("/") do |req, res|
      res.html("<h1>Welcome to Lennarb!</h1>")
    end

    get("/hello/:name") do |req, res|
      name = req.params[:name]
      res.html("Hello, #{name}!")
    end
  end
end

app.initialize!
run app  # In config.ru

Start with: rackup

Performance

Lennarb is designed for high performance:

RPS

Position Application 10 RPS 100 RPS 1.000 RPS 10.000 RPS
1 Lenna 126.252,36 108.086,55 87.111,91 68.460,64
2 Roda 123.360,37 88.380,56 66.990,77 48.108,29
3 Syro 114.105,38 80.909,39 61.415,86 46.639,81
4 Hanami-API 68.089,18 52.851,88 40.801,78 27.996,00

See all benchmark graphs

Documentation

Key Features

# Different response types
res.html("<h1>Hello World</h1>")
res.json("{\"message\": \"Hello World\"}")
res.text("Plain text response")

# Route parameters
get("/users/:id") do |req, res|
  user_id = req.params[:id]
  res.json("{\"id\": #{user_id}}")
end

# Redirects
res.redirect("/new-location")

For more examples and full documentation, see: Complete Lennarb Documentation

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -am 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

This project uses the Developer Certificate of Origin and is governed by the Contributor Covenant.

License

MIT License - see the LICENSE file for details.

About

Lennarb is a lightweight, fast and easy for building modular web applications and APIS with Ruby.

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENCE
MIT
license.md

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages