about summary refs log tree commit homepage
path: root/README
DateCommit message (Collapse)
2017-01-12doc: additional disclaimers
Honestly, these disclaimers should've been there all along; and should apply to all servers handling multiple clients within a single process.
2016-10-31doc: move homepage and update URLs to HTTPS
Let's Encrypt is working well for us and having fewer domains reduces subjectAltName bloat to speed up connection establishment HTTP will remain working indefinitely since some old systems do not have modern TLS stacks.
2015-11-25Rainbows! 5.0.0 - maintained as long as anybody uses it! v5.0.0
This release syncs with unicorn 5 and drops some old compatibility cruft from old releases. Performance should be roughly unchanged for Ruby 2.2 users while older Rubies (1.9.3 - 2.1) will see minor, probably unnoticeable performance regressions. Compatibility: * The horrible, proprietary (:P) "Status:" response header is finally gone, saving at least 16 precious bytes in every HTTP response. This should make it easier to write custom HTTP clients which are compatible across all HTTP servers. It will hopefully make migrating between different Rack servers easier for new projects. * Ruby 1.8 support removed. Ruby 1.9.3 is currently the earliest supported version. However, expect minor, likely-unnoticeable performance regressions if you use Ruby 2.1 or earlier. Going forward, Rainbows! will favor the latest version (currently 2.2) of the mainline Ruby implementation, potentially sacrificing performance on older Rubies. New features: * sd_listen_fds(3) emulation added for systemd compatibility. You may now stop using PID files and other process monitoring software when using systemd. * Newly-set TCP socket options are now applied to inherited sockets. * Dynamic changes in the application to Rack::Utils::HTTP_STATUS hash is now supported; allowing users to set custom status lines in Rack to be reflected in unicorn. This feature causes a minor performance regression, but is made up for Ruby 2.2 users with other optimizations. * The monotonic clock is used under Ruby 2.1+, making the timeout feature immune to system clock changes. As Rainbows! may be used anonymously without registration, the project is committed to supporting anonymous and pseudonymous help requests, contributions and feedback via plain-text mail to: rainbows-public@bogomips.org The mail submission port (587) is open to those behind firewalls and allows access via Tor and anonymous remailers. Archives are accessible via: * http://bogomips.org/rainbows-public/ * nntp://news.public-inbox.org/inbox.comp.lang.ruby.rainbows * nntp://news.gmane.org/gmane.comp.lang.ruby.rainbows.general and mirrored to various other places, so you do not even need to use a valid address when posting. 18 changes since Rainbows! 4.7.0 README: remove Zbatery references http_parser: handle keepalive_requests internally kill the moronic Status: header reflect changes in Rack::Utils::HTTP_STATUS_CODES reduce constant lookup dependencies http_parser: workaround hijack changes in unicorn 5 http_server: add master_pid attribute stream_response_epoll: remove hijack_prepare call bump to unicorn 5.0.1, use monotonic clock add .gitattributes for Ruby method detection response: avoid garbage string entirely tiny bytecode reductions for cold paths Ruby 1.9.3+-only cleanups revactor: remove fcntl dependency response: simplify regexp t0105: fix test reliability fix Rainbows.now definition for old Rubies fix broken constant lookups in unmaintained bits
2015-10-19README: remove Zbatery references
yahns runs as a single process just fine.
2015-02-12README: reference yahns
Because nobody has time to read about all the options Rainbows! provides. yahns is basically XEpollThreadPool, with minor improvements which weren't easily supportable with other concurrency options.
2015-01-10switch docs + website to olddoc
wrongdoc was difficult to maintain because of the tidy-ffi dependency and the HTML5 changes in Darkfish could not be handled well by Tidy. olddoc is superior as it generates leaner HTML which loads faster, requires less scrolling and less processing power to render. Aesthetic comparisons are subjective of course but completely unimportant compared to speed and accessibility. The presence of images and CSS on the old (Darkfish-based) site probably set unreasonable expectations as to my ability and willingness to view such things. No more, the new website is entirely simple HTML which renders well with even the wimpiest browser (hell, olddoc even tries to generate readable raw HTML).
2014-05-12documentation updates for Rubyforge death
We're migrating to a new public-inbox[1] + mailing list rainbows-public@bogomips.org [1] http://public-inbox.org/
2013-10-26license: allow all future versions of the GNU GPL
There is currently no GPLv4, so this change has no effect at the moment. In case the GPLv4 arrives and I am not alive to approve/review it, the lesser of evils is have give blanket approval of all future GPL versions (as published by the FSF). The worse evil is to be stuck with a license which cannot guarantee the Free-ness of this project in the future. This unfortunately means the FSF can theoretically come out with license terms I do not agree with, but the GPLv2 and GPLv3 will always be an option to all users.
2011-05-10LICENSE: add GPLv3 to license terms
GPLv2 and Ruby-specific terms remain intact, but this means we can be combined and redistributed with GPLv3-only software (once Unicorn has GPLv3 added to its license).
2011-05-09doc: update comparison and README
Clearly users need to know about more options
2011-02-16README: clarify license terms and versions
Ruby 1.9.3dev switched to BSD but we remain under the same terms as the old Ruby 1.8 license. Mongrel2 exists now and also uses the BSD, so don't confuse people with that, either.
2011-01-21doc: git.bogomips.org => bogomips.org
bogomips.org is slimming down and losing URL weight :)
2011-01-20remove support for Sunshowers
The WebSocket protocol is still undergoing changes and unused. We won't waste time supporting it until it's finalized and doesn't break HTTP.
2010-12-27coolio*: favor Coolio over Rev
We still use and define Rev internally, but that's mostly just manual labor of converting stuff over.
2010-10-22README: update copyright year
This project is over 1 year old!
2010-08-10doc: it's always "Rainbows!" with a bang(!)
That is the official name of the project and we will not lead people to believe differently.
2010-06-21add Rainbows::Configurator module
Make it easier to link to the Rainbows! configuration documentation without anchors. This also reduces the amount of code we spew into Unicorn::Configurator.
2010-06-07README: update with Zbatery info
2010-05-29Rainbows! 0.93.0 - MOAR!!!1 v0.93.0
In our race to have more concurrency options than real sites using this server, we've added two new and fully supported concurrency models: WriterThreadSpawn and WriterThreadPool They're both designed to for serving large static files and work best with IO.copy_stream (sendfile!) under Ruby 1.9. They may also be used to dynamically generate long running, streaming responses after headers are sent (use "proxy_buffering off" with nginx). Unlike most concurrency options in Rainbows!, these are designed to run behind nginx (or haproxy if you don't support POST/PUT requests) and are vulnerable to slow client denial of service attacks. I floated the idea of doing something along these lines back in the early days of Unicorn, but deemed it too dangerous for some applications. But nothing is too dangerous for Rainbows! So here they are now for your experimentation.
2010-05-03doc: misc updates
* avoid needless links to /Rainbows.html * keepalive_timeout has been 5 seconds by default for a while * update "Gemcutter" references to "RubyGems.org"
2010-05-03doc: RDoc 2.5.x updates
2009-12-22fix README speling fail
2009-12-22README: add RevFiberSpawn
2009-12-13README updates
2009-12-13README: add Sunshowers reference
2009-12-10README: HTML5 Web Sockets may not be supported, yet...
2009-12-02add RevThreadPool to README
2009-11-29doc: add NeverBlock to comparison and README
2009-11-27README: switch rubyforge.org git links to repo.or.cz
We've long had the repo.or.cz mirrors and RubyForge may not support git any longer.
2009-11-27More documentation tweaks for the release
2009-11-26README: formatting and updates
2009-11-26README: "an HTTP", not "a HTTP" (I think...)
We need a professional editor.
2009-11-25Documentation updates for new concurrency models
2009-11-25Gemcutter prep, fix RubyGems capitalization
2009-10-26doc: Update TODO and README
We have basic EventMachine and :async support.
2009-10-19README: change ordering of concurrency model listing
Revactor was our first take on the "rainbows" branch of Unicorn and probably less confusing to people that may have tracked that branch. ThreadPool was used in the "gossamer" branch of Unicorn before, but since this project is named Rainbows!, it's less logical. I'll freely admit to having some personal bias here and not being a fan of threads (and especially not pthreads!).
2009-10-15README: link to AppPool and extra note about Rev model
2009-10-15README: update with Rev model caveats
2009-10-14README: update URLs
2009-10-14documentation updates (mostly on network models)
2009-10-12README: alter reply conventions for the mailing list
Mailman is now configured to munge Reply-To: to point back to the mailing list. This might make things easier for folks on low traffic mailing lists like ours.
2009-10-05doc: better "Rainbows!" RDoc examples and linkage
2009-10-05Avoid naming names in LICENSE/README files
Everything is logged in git anyways and it'll be easier to hand off to somebody else.
2009-10-05summary: s/slow apps/sleepy apps/g
I think "sleepy" is a better term than "slow" here. "slow" can mean apps that are CPU/memory bandwidth-bound, and Rainbows! sucks at those.
2009-10-05README: add install instructions
2009-10-05README: move RDoc links down to fix gem description
2009-10-05huge documentation revamp
2009-10-04doc updates; use "Rainbows!", not "Rainbows"
Also add notes about development things and the configuration language which uses "Rainbows!". Calling ourselves "Rainbows!" will help us be taken even more seriously than if the project were just called "Rainbows"
2009-10-04README: add pointers to the git repository
2009-10-02initial revision
No tests yet, but the old "gossamer" and "rainbows" branches seem to be basically working.