Skip to content

Lightweight, Flexible and Fast Ruby Web Framework

License

Notifications You must be signed in to change notification settings

Laotree/em-midori

 
 

Repository files navigation

midori

This project is still not production-ready.

Questions, Suggestions and Pull Requests are highly welcome.

Every awesome feature you noticed in the project was implemented by me. Any bug you found in the project was made by a JK(joshi kousei) who randomly exchanges body with me while sleeping.

Logo and Slogan

Description

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

Join the chat at https://gitter.im/em-midori/Lobby

Build Status Code Climate Test Coverage Issue Count

Dependency Status doc yard

Gem Version Gem license

Requirements

  • Ruby >= 2.2.6

Installation

gem install em-midori

With Bundler

gem 'em-midori', require: 'midori'
bundle install

FAQ

Performance

Following benchmark results are for 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 confirmed. wrk gives very bad performance result, but ab gives a good one. The given result is tested under Linux.

framework version req/s
Rails (Thin, Ruby) 5.0.0.1 444.12
Rails (API Mode, Thin, Ruby) 5.0.0.1 615.30
Sinatra (Thin, Ruby) 1.4.7 1847.14
express.js (Node.js) 4.14.0 3338.32
em-midori (Ruby) 0.1.9 3692.65

Name

Midori is none of the business of this guy

Sapphire Kawashima

and this guy.

Midori Tokiwa

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

Version Notes

Version consists of four numbers:

Main Code Milestone Code Feature Code Hotfix
Example 1. 2. 1. 5
Explanation First Production Ready Version Two Milestones Passed One New Feature has been Staged Five Releases for Bug Fixes

Contribution

Obey Contributor Covenant Code of Conduct before you leave any comment.

Found a bug or any suggestion

  1. Check Issue list and Trello board.
  2. Comment with your details if any ticket is common to your idea.
  3. Raise a ticket if no open ticket meets your idea.
  4. If you are not sure whether you should raise a ticket or not, use gitter to contact other developers.

Contribute

  1. Check Issue list and Trello board.
  2. Pick a feature still not in progress.
  3. Raise a ticket saying you're working on.
  4. Fork, Code, Test and Document it.
  5. Raise pull requests.
  6. If any problem, use gitter to contact other developers.

Roadmap

Detailed release notes for published versions can be seen here.

Detailed progress can be seen here.

Version Code Determined Date Release Date Description
0.0.1 2016-09-09 2016-09-09 (+0d) Init the gem project
0.0.2 2016-09-09 2016-09-09 (+0d) Init basic EventMachine server
0.0.3 2016-09-13 2016-09-13 (+0d) Init Midori::API design
0.0.4 2016-09-20 2016-09-19 (-1d) Implement API match
0.0.5 2016-09-27 2016-09-25 (-2d) Implement request and response.
0.0.6 2016-10-04 2016-10-06 (+2d) Implement WebSocket
0.0.7 2016-10-11 2016-10-11 (+0d) Get WebSocket Code Covered
0.0.8 2016-10-18 2016-10-16 (-2d) Implement EventSource
0.0.9 2016-10-25 2016-10-17 (-8d) Implement Middleware
0.1.0 2016-11-01 2016-10-27 (-5d) Enrich API and documenting (dev ready)
0.1.1 2016-11-08 2016-11-07 (-1d) API Mount Syntax
0.1.2 2016-11-15 2016-11-27 (+12d) Better Error Handler
0.1.3 2016-11-22 2016-11-27 (+5d) File I/O
0.1.4 2016-12-06 2016-11-28 (-8d) Implement Database Driver
0.1.5 2016-12-20 2016-12-01 (-19d) Implement Database ORM
0.1.6 2017-01-03 2016-12-21 (-13d) Enrich Database
0.1.7 2017-01-10 2016-12-25 (-16d) Documenting
0.1.8 2017-01-17 2017-01-17 (+0d) Tutorial (Partial)
0.1.9 2017-02-21 2017-02-18 (-3d) Abstract Evented Actor
0.1.10 2017-02-28 2017-02-20 (-8d) Reconstruct Extensions
0.1.11 2017-03-07 2017-02-21 (-14d) Add MySQL Extension Support
0.1.12 2017-03-14 2017-02-25 (-17d) Better HTTP Request Extension
0.2.0 2017-03-21 General Web Adapter
0.2.1 2017-03-28 Enrich Benchmark
0.2.2 2017-04-04 Documenting and API Stable
1.0.0 2017-04-11 Enrich Tutorial, Production-ready

Midori 2 Goals

  • Complete HTTP/2 Support
  • Midori Clusters
  • More Concurrent Model Attempts (Actor, Guild, ...?)
  • Midori Command Line Tool
  • Midori Scaling Example
  • Crystal Support?

About

Lightweight, Flexible and Fast Ruby Web Framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%