[ANN] yahns 1.5.0 -_- sleepy app server for Ruby

A Free Software, multi-threaded, non-blocking network application server
designed for low _idle_ power consumption. It is primarily optimized
for applications with occasional users which see little or no traffic.
yahns currently hosts Rack/HTTP applications, but may eventually support
other application types. Unlike some existing servers, yahns is
extremely sensitive to fatal bugs in the applications it hosts.

Changes:

    initial OpenSSL support and bugfixes

    This release adds basic OpenSSL support for HTTPS connections.

    Users must supply a OpenSSL::SSL::SSLContext object which yahns will use
    as-is. yahns will only support HTTPS on Ruby 2.1 and later, as we rely
    on "exception: false" in the read_nonblock and write_nonblock methods in
    OpenSSL::SSL::SSLSocket.

    See the Ruby standard library documentation on how to configure
    OpenSSL::SSL::SSLContext objects to pass to the yahns "listen" directive
    Editing the yahns config file to use OpenSSL goes something like this:

        require 'openssl' # we will not do this for the user, even
        ctx = OpenSSL::SSL::SSLContext.new
        # user must configure ctx here...

        listen 443, ssl_ctx: ctx

    Note: yahns developers are not responsible for bugs in OpenSSL itself
    or misconfigured SSLContext objects created by users. However, our
    support of OpenSSL sockets is barely-tested and likely buggy, too.

    Furthermore, the "sendfile" (or "kgio-sendfile") gem is no longer a
    required dependency. It is currently impossible to use zero-copy
    system calls with TLS sockets.

    There are also minor cleanups and a bugfix to ensure body#close is
    called for folks using body#to_path where `body' is the Rack
    response body. This bug affected logging using the 'clogger' gem
    when serving static files.

    Shortlog of changes since 1.4.0

          save around 1500 bytes of memory on x86-64
          http_response: remove arg for Array#join
          remove unused client_max_header_size config
          config: use literal symbol array for now
          http_response: reduce constants for 100 responses
          favor Array#map! for freshly-split arrays
          sendfile_compat: remove dependency on pread
          extras/autoindex: simplify checking non-.gz
          Rakefile: kill more useless gsub use
          initial cut at OpenSSL support
          test/test_ssl: skip test if SSL on older Rubies
          wbuf_common: close body proxies on sendfile abort
          bump published Ruby version requirement to 2.0
          make sendfile an optional dependency
          openssl_client: ignore SSL_accept errors during negotiation

    Disclaimer: the yahns project does not and will never endorse
    any commercial entities, including certificate authorities.

    Shpx Nhgubevgl.

Please note the disclaimer:

  yahns is extremely sensitive to fatal bugs in the apps it hosts. There
  is no (and never will be) any built-in "watchdog"-type feature to kill
  stuck processes/threads. Each yahns process may be handling thousands
  of clients; unexpectedly killing the process will abort _all_ of those
  connections. Lives may be lost!

  yahns hackers are not responsible for your application/library bugs.
  Use an application server which is tolerant of buggy applications
  if you cannot be bothered to fix all your fatal bugs.

* git clone git://yhbt.net/yahns
* http://yahns.yhbt.net/README
* http://yahns.yhbt.net/NEWS.atom.xml
* we like plain-text email yahns-public@yhbt.net

···

--
EW