All Versions
Latest Version
Avg Release Cycle
62 days
Latest Release
213 days ago

Changelog History
Page 7

  • v0.4.14 Changes

    ๐Ÿ›  Fix: ( fixes an issue where timer monitoring would report failure when the timer exists and is being monitored.

  • v0.4.12 Changes

    ๐Ÿ›  Fix: ( fixes some lingering issues with the new Websocket parser, namely an issue where certain network packet lengths would cause the parser to fail. Credit to Tom Lahti (@uidzip) for exposing the issue.

  • v0.4.11 Changes

    ๐Ÿ›  Fix: (iodine) use Ruby fork instead of system fork, allowing Ruby hooks to run before and after forking. This also fixes an issue where the Ruby timer thread isn't (re)initialized.

  • v0.4.10 Changes

    Portability: (mac OS High Sierra) iodine will load the Objective C library on macOS machines before starting up the server - this will prevent fork from crashing the server on macOS High Sierra, see discussion here.

    ๐Ÿ›  Fix: ( fixes an error with the new Websocket parser (introduced in v. 0.4.9) that caused medium sized messages (127 Bytes - 64Kib) to be parsed incorrectly. Apologies. The test program I used seems to have validated messages using length comparison (instead of data comparison). Credit to Tom Lahti (@uidzip) for exposing the issue.

  • v0.4.9 Changes

    ๐Ÿ”„ Change: ( the internal Websocket parser was replaced with something easier to read, for maintainability reasons. Performance seems to be mostly unaffected (sometimes it's faster and sometimes it's slower, common case is slightly optimized).

    ๐Ÿ”„ Change: ( iodine will compile with the NO_CHILD_REAPER flag, in order to workaround the Rails ExecJS gem that assumes no child reaping is performed. This workaround is, hopefully, temporary. Credit to @jerryshen for exposing the issue.

    ๐Ÿ›  Fix: (Iodine) test for timer creation error in run_after and run_every.

    ๐Ÿ›  Fix: ( timer creation now correctly detects if the reactor was stopped, allowing the creation of new timers before the reactor's reactivation.

    ๐Ÿ›  Fix: ( timer timeout review is now correctly ignored, preventing the timer from being shut down prematurely.

  • v0.4.8 Changes

    ๐Ÿ”„ Change: ( the internal HTTP parser was replaced with something easier to read, for maintainability reasons. Performance seems to be unaffected.

    ๐Ÿ›  Fix: HTTP request logging included an extra info line which was a debug/testing message inherited from v.0.5.3-pre-release. This is now removed.

    ๐ŸŽ Performance: The now HTTP Date string is now cached for up to 2 seconds, improving performance for Date, Last-Modified and Iodine logging messages that relate to the current time. However, it's likely that Rack will write it's own date string, masking this feature.

  • v0.4.7 Changes

    โšก๏ธ Update: Now using edge (stripped down v.0.5.3).

    ๐Ÿ›  Fix: (websocket) fix #21, where a client's first message could have been lost due to long on_open processing times. This was fixed by fragmenting the upgrade event into two events, adding the facil_attach_locked feature and attaching the new protocol before sending the response. Credit to @madsheep and @nilclass for exposing the issue and tracking it down to the on_open callbacks.

    ๐Ÿ›  Fix: (sock) sockets created using the TCP/IP sock library now use TCP_NODELAY as the new default. This shouldn't be considered a breaking change as much as it should be considered a fix.

    ๐Ÿ›  Fix: (http1) HTTP/1.x now correctly initializes the udata pointer to NULL fore each new request.

    ๐Ÿ›  Fix: (defer) a shutdown issue in defer_perform_in_fork was detected by @cdkrot and his fix was implemented.

  • v0.4.6 Changes

    โšก๏ธ Update: Now using v.0.5.2.

    ๐Ÿ›  Fix: (from fix SIGTERM handling, make sure sibling processes exit when a sibling dies.

  • v0.4.5 Changes

    ๐Ÿ›  Fix: fix static file service for X-Sendfile as well as static error file fallback pages (404.html etc').

  • v0.4.4 Changes

    ๐Ÿ›  Fix: fixed an issue related to Ruby 2.3 optimizations of String management (an issue that didn't seem to effect Ruby 2.4). This fix disables the recyclable buffer implemented for the on_message Websocket callback. The callback will now receive a copy of the buffer (not the buffer itself), so there is no risk of collisions between the network buffer (managed in C) and the on_message(data) String (managed by Ruby).