mongrel
EventMachine
Our great sponsors
mongrel | EventMachine | |
---|---|---|
2 | 3 | |
173 | 4,242 | |
- | 0.2% | |
10.0 | 3.2 | |
over 14 years ago | 9 months ago | |
Ruby | Ruby | |
GNU General Public License v3.0 or later | Ruby License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mongrel
-
Newb here: have you written your own web server? Seeking advice
The other major thing you'll run into is performance. WEBrick's HTTP parsing code may look hairy but it is fast. Mongrel was the first Ruby HTTP server to implement it's HTTP parser in C using Ragel, which Thin, Unicorn, and Puma all copied; although there's a bug in the original Mongrel HTTP parser where it does not combine the values duplicate HTTP headers (yes, HTTP Header names can actually be repeated).
EventMachine
-
I don’t get all the hate for PHP and at this point I am too afraid to ask.
You could also use something like EventMachine (In ruby), Twisted (Python), Node (JS) or ReactPHP (for PHP) that will use the language and turn it into a web application server, and then you'll have only one long running process that handle all your requests with shared memory. You could even use something more fancy like RoadRunner in the case of PHP.
-
Newb here: have you written your own web server? Seeking advice
Maybe check out EventMachine. You can roll your own using sockets if you don't want to use a library.
-
Best of (Ruby) Gems Series - What's Next? What's Hot?
EventMachine
What are some alternatives?
Thin - A very fast & simple Ruby web server
Concurrent Ruby - Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.
Puma - A Ruby/Rack web server built for parallelism
Async Ruby - An awesome asynchronous event-driven reactor for Ruby.
Rack - A modular Ruby web server interface.
Celluloid - Actor-based concurrent object framework for Ruby
Tokamak - SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms
Polyphony - Fine-grained concurrency for Ruby
bindata - BinData - Reading and Writing Binary Data in Ruby
render_async - render_async lets you include pages asynchronously with AJAX
tracks - A bare-bones Ruby HTTP server that talks Rack and uses a thread per connection model of concurrency.
Opal-Async - Non-blocking tasks and enumerators for Opal.