Added extra messaging around the class not matching the file name (Carlos Brando)
Fix issue with POST parameters not being parsed by Goliath::Rack::Params
Added support for multipart encoded POST bodies
Added support for parsing nested query string parameters (Nolan Evans)
Added support for parsing application/json POST bodies
Content-Types outside of multipart, urlencoded and application/json will not be parsed automatically.
added 'run as user' option
SERVER_NAME and SERVER_PORT are set to values in HOST header
Cleaned up spec examples (Justin Ko)
moved logger into 'rack.logger' key to be more Rack compliant (Env#logger added to keep original API consistent)
add command line option for specifying config file
HTTP_CONTENT_LENGTH and HTTP_CONTENT_TYPE were changed to CONTENT_TYPE and CONTENT_LENGTH to be more Rack compliant
fix issue with loading config file in development mode
Rack::Reloader will be loaded automatically by the framework in development mode.
🚀 (Initial Public Release)
💎 Goliath is an open source version of the non-blocking (asynchronous) Ruby web server framework powering PostRank. It is a lightweight framework designed to meet the following goals: bare 🐎 metal performance, Rack API and middleware support, simple configuration, fully asynchronous 🖨 processing, and readable and maintainable code (read: no callbacks).
🐎 The framework is powered by an EventMachine reactor, a high-performance HTTP parser and Ruby 1.9 ⚙ runtime. One major advantage Goliath has over other asynchronous frameworks is the fact that by 💎 leveraging Ruby fibers, it can untangle the complicated callback-based code into a format we are all familiar and comfortable with: linear execution, which leads to more maintainable and readable code.
✅ While MRI is the recommend platform, Goliath has been tested to run on JRuby and Rubinius.
Goliath has been in production at PostRank for over a year, serving a sustained 500 requests/s for internal and external applications. Many of the Goliath processes have been running for months at a time (read: no memory leaks) and have served hundreds of gigabytes of data without restarts. To scale up and provide failover and redundancy, our individual Goliath servers at PostRank are usually 🚀 deployed behind a reverse proxy (such as HAProxy).