[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.


    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

    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