This project is still not production-ready. Questions, suggestions and pull requests are highly welcome.
🎉 Celebrate 10K downloads to midori.
Midori is a Ruby Web Framework, providing high performance and proper abstraction.
midori | midori-contrib | murasaki |
---|---|---|
![]() |
![]() |
![]() |
Web Framework | Official Extensions | Modularized Event Engine |
- Ruby >= 2.2.6
gem install em-midori
With Bundler
gem 'em-midori', require: 'midori'
bundle install
Following benchmark results uses em-midori-benchmark, testing {msg: "Hello"}
JSON response by visiting GET /
with a single-core, 4GB memory, UCloud Linux instance.
Note: Performance under Mac OS X needs to be further improved. wrk
gives very bad performance result, but ab
gives a good one. The following result is tested under Linux.
framework | version | req/s |
---|---|---|
Rails (Thin, Ruby) | 5.0.0.1 | 521.58 |
Rails (API Mode, Thin, Ruby) | 5.0.0.1 | 760.03 |
Sinatra (Thin, Ruby) | 2.0.0 | 1912.23 |
express.js (Node.js) | 4.15.3 | 4944.58 |
midori (Ruby) | 0.2.4 | 3937.08 |
The name midori comes from midori machi, which was the place I stay on my first travel to Tokyo.
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.
See Contributing Guidelines before you leave any comment.
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.
Development roadmap has been moved here.
Detailed release notes for published versions can be seen here.
- Support HTTP/2
- Add MVC abstraction example with scaffold
- Improve performance of eventloop
- More examples on using midori