=== raindrops 0.20.1 / 2023-02-25 00:19 UTC Stats for SO_REUSEPORT sockets are now handled properly. Thanks to Dale Hamel for the patches. Dale Hamel (2): Fix queue stats for sockets with SO_REUSEPORT Fix off by one error in test === raindrops 0.20.0 / 2021-12-06 23:41 UTC Raindrops may now use file-backed mmap() rather than anonymous memory. Thanks to KJ Tsanaktsidis for the patch: https://yhbt.net/raindrops-public/20211125065618.3432-1-ktsanaktsidis@zendesk.com/T/ The documentation is also updated to note our mail archives are now available via IMAP(S). === raindrops 0.19.2 / 2021-05-25 23:13 UTC This release fixes compatibility with GC.compact on Ruby 3.x when using ListenStats on Linux. The listener stats functionality is rarely used and does not affect most users who just have raindrops installed for shared atomic counters. === raindrops 0.19.1 / 2020-01-08 09:31 UTC This release fixes some warnings on newer Rubies. We're no longer on bogomips.org since it's due for expiry and I can't pay extortionists for a .org, so s/bogomips.org/yhbt.net/ for now, and be prepared to move again when extortionists move onto extorting the .net TLD. doc: switch homepage to dark216 ext/raindrops/extconf: fix cflags reset on ancient CC fixes for newer rubies replace bogomips.org with yhbt.net === raindrops 0.19.0 - Rack 2.x middleware compatibility / 2017-08-09 23:52 UTC This release fixes Rack 2.x compatibility for the few users of Raindrops::Middleware . Thanks to Dmytro Shteflyuk for this release. No need to upgrade unless you use Raindrops::Middleware with Rack 2.x. There's also a few minor, inconsequential cleanups. Dmytro Shteflyuk (1): Properly override respond_to? in Raindrops::Middleware::Proxy Eric Wong (2): Ruby thread compatibility updates tcp_info: remove unnecessary extconf.h include === raindrops 0.18.0 / 2017-03-23 02:44 UTC The most notable feature of this release is the addition of FreeBSD and OpenBSD TCP_INFO support. This includes the Raindrops::TCP for portably mapping TCP state names to platform-dependent numeric values: https://bogomips.org/raindrops/Raindrops.html#TCP Thanks to Jeremy Evans and Simon Eskildsen on the unicorn-public@bogomips.org mailing list for inspiring these changes to raindrops. There's also a few internal cleanups, and documentation improvements, including some fixes to the largely-forgotten Raindrops::Aggreage::PMQ class: https://bogomips.org/raindrops/Raindrops/Aggregate/PMQ.html 20 changes since 0.17.0: test_inet_diag_socket: fix Fixnum deprecation warning TODO: add item for IPv6 breakage ext: fix documentation for C ext-defined classes TCP_Info: custom documentation for #get! TypedData C-API conversion test_watcher: disable test correctly when aggregate is missing tcp_info: support this struct under FreeBSD define Raindrops::TCP hash for TCP states linux_inet_diag: reduce stack usage and simplify avoid reading errno repeatedly aggregate/pmq: avoid false sharing of lock buffers aggregate/pmq: remove io-extra requirement aggregate/pmq: avoid File#stat allocation Merge remote-tracking branch 'origin/freebsd' Merge remote-tracking branch 'origin/aggregate-pmq' doc: remove private email support address doc: update location of TCP_INFO-related stuff build: avoid olddoc for building the RubyGem doc: document Raindrops::TCP hash aggregate/pmq: update version numbers for Ruby and Linux === raindrops 0.17.0 - rack 2.x updates / 2016-07-31 15:19 UTC This release features minor updates to support rack 2.x while maintaining support for rack 1.2 and later. As a result, Ruby 1.8.6 compatibility is gone, but Ruby 1.8.7 probably still works, for now. There's also a minor warning fix, doc updates, and the homepage now supports HTTPS (HTTP remains supported) 5 changes since raindrops 0.16.0: drop Rack::Utils.bytesize dependency gemspec: bump Rack dependency linux_inet_diag: GCC attribute format check use HTTPS and move homepage to https://bogomips.org/raindrops/ examples: add yahns config, zbatery is abandoned === raindrops 0.16.0 - minor fixes and workarounds / 2016-02-29 12:36 UTC There's mainly a fix/workaround for Ruby 2.3 now returning locale-aware strings for File.readlink and our test suite using strange paths allowed by *nix. https://bugs.ruby-lang.org/issues/12034 tcp_listener_stats won't return "true" object placeholders if stats are configured for a non-existent listener. There are also minor optimizations for Ruby 2.2+ (at the expense of 2.1 and earlier). And the usual round of minor tweaks and doc updates. 10 changes since v0.15.0: gemspec: avoid circular dependency on unicorn remove optimizations which made sense for older rubies linux: workaround Ruby 2.3 change linux: remove Pathname stdlib dependency add .gitattributes for Ruby method detection middleware: minor bytecode size reduction doc: update URLs and references README: remove indentation from URLs in RDoc linux: tcp_listener_stats drops "true" placeholders build: use '--local' domain for dev gem install === raindrops 0.15.0 - non-glibc compat fix on Linux / 2015-07-22 00:30 UTC Thanks to Doug Forster for sending us the report. No other fixes * check for the existence of linux/tcp.h === raindrops 0.14.0 - misc doc updates / 2015-06-25 21:50 UTC Eric Wong (7): linux_inet_diag: annotate memory freeing on diag errors README: trim intro and update license modernize packaging and documentation move mailing list to raindrops-public@bogomips.org linux_inet_diag: clarify *fprintf usage without GVL TODO: add item for unix_diag and udp_diag linux_inet_diag: fix Wshorten-64-to-32 warnings Hleb Valoshka (1): Add setup and teardown for ipv6 tests === raindrops 0.13.0 several minor fixes and improvements / 2014-02-18 20:59 UTC Most notably, this release is necessary for Ruby 2.2 (dev). Thanks to Koichi Sasada for the bug report! Eric Wong (5): Rakefile: remove raa_update task last_data_recv: do not assume Unicorn includes all constants raindrops.gemspec: add wrongdoc dev dependency linux_inet_diag: fix Ruby 2.2 (dev) build license: use LGPLv2.1 or later (was LGPL (2.1|3.0)-only) Hleb Valoshka (1): Remove Scope IDs from IPv6 addresses. === raindrops 0.12.0 - compatibility fixes / 2013-09-02 10:33 UTC This release fixes builds on systems where compilers target i386 (and not later x86 systems). There are also minor improvements for Ruby 2.1.0dev and Rubinius. Eric Wong (5): doc: add email address to generated doc/site README: update regarding Ruby support status extconf: try harder for gcc atomics in i386-configured systems linux_inet_diag: improve compatibility with newer GCs test_watcher: fix for Ruby trunk r40195 and later === raindrops 0.11.0 - minor fixes improvements / 2013-04-20 23:10 UTC Eric Wong (7): raindrops: favor configured processor count over online count watcher: set Content-Type via assignment Linux::TCP_Info: implement #get! instance method linux_inet_diag: avoid unnecessary sockaddr initialization .gitignore: add .rbx switch back to gemspec development dependencies linux_inet_diag: better align listener_stats struct Lawrence Pit (1): Watcher: Use relative paths in HTML links === raindrops 0.10.0 - minor feature updates / 2012-06-19 08:30 UTC Improvements to the Unix domain socket handling and small bugfixes throughout. Support for the "unix_diag" facility in Linux 3.3+ is planned but not yet implemented (patches to raindrops@librelist.org appreciated) Brian Corrigan (1): resolve symlinks to Unix domain sockets Eric Wong (6): unix_listener_stats follows and remembers symlinks middleware/proxy: favor __send__ for method dispatch unix: show zero-value stats for idle listeners test_watcher: fix incorrect request/date comparison watcher: sort index of listener listing watcher: do not require Rack::Head for HEAD response See "git log v0.9.0..v0.10.0" for full details === raindrops 0.9.0 - minor middleware/proxy update / 2012-05-21 00:06 UTC Raindrops::Middleware::Proxy now forwards method_missing to the proxied body object. This allows compatibility with non-standard Rack extensions employed by some middlewares, applications, or servers. Thanks to Ben Somers for the feature! === raindrops 0.8.1 - compatibility fixes / 2012-05-12 05:58 UTC This release fixes a build problem found under a current SmartOS. This release also runs successfully on FreeBSD 9.0 under both x86-64 and i386. There are also documentation updates from Aman Gupta and a test suite fix from Jeremy Evans for OpenBSD. raindrops fully supports unicorn on recent versions of FreeBSD, OpenBSD, SmartOS, and possibly other Free Software systems. Portability reports and fixes for Free Software systems is greatly appreciated at raindrops@librelist.org Non-Free systems will never be supported. raindrops requires the Linux 2.6.18 or later for full functionality (which unicorn does not require). Future releases will take advantage of the unix_diag functionality found in the Linux 3.3 (and later) kernels. === raindrops 0.8.0 - watcher updates / 2011-10-14 22:00 UTC There are various updates to the Raindrops::Watcher Rack app. Most notably, the timestamp where the a statistic first and last hit its peak value (active/queued connections) is captured. As usual, the latest Raindrops::Watcher is running at: http://raindrops-demo.bogomips.org/ === raindrops 0.7.0 - FreeBSD fix, code cleanups / 2011-06-27 07:26 UTC This release fixes a build issue on FreeBSD. There are various documentation and code cleanups, too. === raindrops 0.6.1 - fix build on non-Linux / 2011-03-21 22:31 UTC TCP_INFO support couldn't compile under non-Linux, this was broken since 0.5.0 when TCP_INFO support was introduced. Thanks to Ben Bleything for the report. === raindrops 0.6.0 - polishing up the last release / 2011-03-21 21:46 UTC Following up the huge 0.5.0 release, 0.6.0 makes some minor improvements: * minor UI/UX improvements for Watcher Rack app * set close-on-exec by default for inet_diag sockets * inet_diag build fixes for newer GNU libc6 * --with-atomic_ops-dir= build option added === raindrops 0.5.0 - more Linux extras! / 2011-03-17 03:13 UTC Portable changes: * Raindrops are now resizable within the limits of system page size * Raindrops::Middleware proxies +to_path+ in response bodies * More documentation Linux-only changes: * Raindrops::LastDataRecv[1] Rack application * Raindrops::Watcher[2] Rack application * Raindrops::TCP_Info[3] class for capturing TCP connection stats * IPv6 support for inet_diag * faster inet_diag stats for multiple sockets There is also a demo server running the Watcher and Middleware components. It's capped to 30 concurrent users, so go easy on it: Raindrops::Watcher: http://raindrops-demo.bogomips.org/ Raindrops::Middleware: http://raindrops-demo.bogomips.org/_raindrops [1] http://raindrops.bogomips.org/Raindrops/LastDataRecv.html [2] http://raindrops.bogomips.org/Raindrops/Watcher.html [3] http://raindrops.bogomips.org/Raindrops/TCP_Info.html === raindrops 0.4.1 - more portability! / 2010-09-26 06:49 UTC Rubinius 1.1.0 support is complete. Atomic operations are now available under FreeBSD 7.0 now. Full changelog below: commit 8a2a725a4ad074af493e5aa075155eda8b1d6be7 Author: Eric Wong Date: Sat Sep 25 00:14:48 2010 -0700 force -march=i486 where GCC is targeted for i386 Nobody uses i386 anymore (especially not with Ruby!), but some systems like FreeBSD 7.0 still target GCC at i386 by default, so we force GCC to use a slightly more modern instruction set and allow it to use atomic builtins. commit 256cc7c8ffb441dcf2d2a2da3bbbcc82546962d9 Author: Eric Wong Date: Sat Sep 25 00:01:46 2010 -0700 disable Linux-only code on non-Linux This allows us to build and link correctly on FreeBSD 7.0 commit 22a5a39d75faa890048d07ae4ea0d494acd414ce Author: Eric Wong Date: Sat Sep 25 06:25:42 2010 +0000 linux: workaround missing RSTRUCT* macros in rbx Rubinius does not include macros for accessing Struct members in the C API. ref: http://github.com/evanphx/rubinius/issues/494 === raindrops 0.4.0 - flowing into new systems! / 2010-09-21 22:32 UTC Non-GCC 4.x users may use the libatomic_ops[1] package to compile Raindrops. Memory efficiency is improved for modern glibc users with run-time cache line size detection, we no longer assume 128 byte cache lines. [1] - http://www.hpl.hp.com/research/linux/atomic_ops/ === raindrops v0.3.0 - LGPL v2.1 and v3.0 / 2010-07-10 22:29 UTC Raindrops is now licensed under the LGPLv2.1 or LGPLv3 (from LGPLv3-only) to allow bundling in GPLv2-only applications. There are small documentation updates and updated examples at http://raindrops.bogomips.org/examples/ === raindrops 0.2.0 - raining penguins! / 2010-05-05 00:35 UTC For servers running Unicorn 0.98.0 (and derivative servers) under Linux, :listeners no longer needs to be passed explicitly when configuring the Rack middleware. Some small documentation updates and cleanups, too. === raindrops 0.1.0 / 2010-04-08 00:45 UTC initial release