Lightweight, Flexible and Fast Ruby Web Framework
Ruby C
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

midori

This project is still not production-ready. Questions, suggestions and pull requests are highly welcome.

Backers on Open Collective Sponsors on Open Collective

Logo and Slogan

Description

Midori is a Ruby Web Framework, providing high performance and proper abstraction.

midori midori-contrib murasaki midori_http_parser
midori logo midori logo midori logo midori logo
Web Framework Official Extensions Modularized Event Engine HTTP Parser
Build Status Build Status Build Status Build Status
Test Coverage Test Coverage Test Coverage n/a
Maintainability Maintainability Maintainability Maintainability
doc doc doc n/a
Gem Version Gem Version Gem Version Gem Version
license license license license

Requirements

  • Ruby >= 2.3.7

Installation

gem install midori.rb

With Bundler

gem 'midori.rb'
bundle install

FAQ

Performance

Following benchmark results testing {msg: "Hello"} JSON response by visiting GET / with a single-core, 1GB memory, Amazon Web Service Linux instance.

framework version req/s
Rails (Thin, Ruby 2.5.1) 5.0.6 490.23
Rails (API Mode, Thin, Ruby 2.5.1) 5.0.6 785.61
Sinatra (Thin, Ruby 2.5.1) 2.0.0 1196.23
express.js (Node.js 9.3.0) 4.16.0 5435.98
midori (Ruby 2.5.1) 0.6.0 5517.66

Name

The name midori comes from midori machi, which was the place I stay on my first travel to Tokyo.

Semantic Versioning

Version consists of four numbers:

Milestone Major Minor Patch
Example 1. 2. 1. 5
Explanation Milestone version Incompatible API changes Add feature Fix bugs

Note: Before version v1.0, there's no minor version API compatible ensuring.

Contributing

See Contributing Guidelines before you leave any comment. This project exists thanks to all the people who contribute.

Contributors

Tutorial & Example

There is an unfinished tutorial available here.

There is also an example showing how to use midori with a todo-list web app available here.

Roadmap

Development roadmap has been moved here.

Detailed release notes for published versions can be seen here.

Midori 2 Goals

  1. Support HTTP/2
  2. Support RPC/ZeroMQ Based Server
  3. Add MVC abstraction example with scaffold
  4. Improve structure for fitting AutoFiber
  5. More examples on using midori

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]