All Versions
Latest Version
Avg Release Cycle
63 days
Latest Release

Changelog History
Page 12

  • v0.1.14 Changes

    โšก๏ธ Update: the Response now supports redirect_to for both permanent and temporary redirection, with an optional flash cookie setup.

    ๐ŸŽ Performance: the Protocol class now recycles the data string as a thread global socket buffer (different threads have different buffer strings), preventing excessive malloc calls by the Ruby interpreter. To keep the data (in on_message(data)) past the on_message method's scope, be sure to duplicate it using data.dup, or the string's buffer will be recycled.

  • v0.1.13 Changes

    ๐Ÿ”„ Change: Session cookie lifetime is now limited to the browser's session. The local data will still persist until the tmp-folder is cleared (when using session file storage).

    ๐Ÿ›  Fix: renamed the SSL session token so that the SSL session id isn't lost when a non-secure session is used.

    ๐Ÿ›  Fix: The flash cookie-jar will now actively prevent Symbol and String keys from overlapping.

    Compatibility: minor fixes and changes in preparation for Ruby 2.3.0. These may affect performance due to slower String initialization times.

  • v0.1.12 Changes

    โšก๏ธ Update: Passing a hash as the cookie value will allow to set cookie parameters using the {Response#set_cookie} options. i.e.: cookies['key']= {value: "lock", max_age: 20}.

    ๐Ÿ”’ Security: set the HTTPOnly flag for session id cookies.

  • v0.1.11 Changes

    ๐Ÿ›  Fix: fixed the Rack server Handler, which was broken in version 0.1.10.

  • v0.1.10 Changes

    ๐Ÿ›  Fix: make sure the WebsocketClient doesn't automatically renew the connection when the connection was manually closed by the client.

    ๐ŸŽ Performance: faster TimedEvent clearing when manually stopped. Minor improvements to direct big-file sending (recycle buffer to avoid malloc).

  • v0.1.9 Changes

    ๐Ÿ›  Fix: WebsocketClient connection renewal will now keep the same WebsocketClient instance object.

    โšก๏ธ Update Creating a TimedEvent before Iodine starts running will automatically 'nudge' Iodine into "Task polling" mode, cycling until the user signals a stop.

    โšก๏ธ Update: repeatedly calling Iodine.force_start! will now be ignored, as might have been expected. Once Iodine had started, force_start! cannot be called until Iodine had finished (and even than, Iodine might never be as fresh nor as young as it was).

  • v0.1.8 Changes

    ๐Ÿ›  Fix: Websocket broadcasts are now correctly executed within the IO's mutex locker. This maintains the idea that only one thread at a time should be executing code on behalf of any given Protocol object ("yes" to concurrency between objects but "no" to concurrency within objects).

    ๐Ÿ›  Fix fixed an issue where manually setting the number of threads for Rack applications (when using Iodine as a Rack server), the setting was mistakenly ignored.

    ๐Ÿ›  Fix fixed an issue where sometimes extracting the HTTP response's body would fail (if body is nil).

    ๐Ÿ”‹ Feature: session objects are now aware of the session id. The session id is available by calling

    ๐Ÿ›  Fix fixed an issue where HTTP streaming wasn't chunk encoding after connection error handling update.

    ๐Ÿ›  Fix fixed an issue where HTTP streaming would disconnect while still processing. Streaming timeout now extended to 15 seconds between response writes.

  • v0.1.7 Changes

    โœ‚ Removed a deprecation notice for blocking API. Client API will remain blocking due to use-case requirements.

  • v0.1.6 Changes

    ๐Ÿ›  Fix: fixed an issue where a session key-value pair might not get deleted when using session.delete key and the key is not a String object. Also, now setting a key's value to nil should delete the key-value pair.

    ๐Ÿ›  Fix: fixed an issue where WebsocketClient wouldn't mask outgoing data, causing some servers to respond badly.

    ๐ŸŽ Performance: minor performance improvements to the Websocket parser, for unmasking messages.

    ๐Ÿ—„ Deprecation notice:

    ๐Ÿšš (removed after reviewing use-cases).

  • v0.1.5 Changes

    ๐Ÿ”‹ Feature: The Response#body can now be set to a File object, allowing Iodine to preserve memory when serving large static files from disc. Limited Range requests are also supported - together, these changes allow Iodine to serve media files (such as movies) while suffering a smaller memory penalty and supporting a wider variety of players (Safari requires Range request support for it's media player).

    ๐Ÿ›  Fix: Fixed an issue where Iodine might take a long time to shut down after a Fatal Error during the server initialization.