Skip to content

Releases: launchdarkly/ruby-eventsource

2.2.2

13 Mar 15:49
Compare
Choose a tag to compare

[2.2.2] - 2023-03-13

Fixed:

  • Content-Type checking was failing in some environments due to casing issues. Updated check to use a more robust header retrieval method. (Thanks, matt-dutchie!)

2.2.1

15 Jun 19:36
Compare
Choose a tag to compare

[2.2.1] - 2022-06-15

Fixed:

  • Improved efficiency of SSE parsing to reduce transient memory/CPU usage spikes when streams contain long lines. (Thanks, sq-square!)

2.2.0

31 Dec 21:04
Compare
Choose a tag to compare

[2.2.0] - 2021-12-31

Added:

  • The StreamEvent type now has a new property, last_event_id. Unlike the id property which reports only the value of the id: field (if any) in that particular event, last_event_id reports the id: value that was most recently specified in any event. The specification states that this state should be included in every event; the ability to distinguish last_event_id from id is an extended feature of this gem.

Fixed:

  • The client could stop reading the stream and return an error if there was a multi-byte UTF-8 character whose bytes were split across two reads. It now handles this correctly.
  • In JRuby only, the client returned an error when trying to reconnect a stream if the initial reconnect delay was set to zero.
  • As per the specification, the parser now ignores any id: field whose value contains a null (zero byte).
  • The last event ID that is sent in the Last-Event-Id header was only being updated if an event specified a non-empty value for id:. As per the specification, it should be possible to explicitly clear this value by putting an empty id: field in an event.

2.1.1

12 Oct 17:10
Compare
Choose a tag to compare

[2.1.1] - 2021-10-12

Fixed:

  • Performance should now be greatly improved when parsing events that have very long data. Previously, the logic for parsing the stream to find line breaks could result in unnecessary extra scans of the same characters and unnecessary extra string slicing. (#20)
  • The backoff delay algorithm was being inappropriately applied before the first connection attempt. In the default configuration, that meant an extra delay of between 0.5 seconds and 1 second.
  • Leading linefeeds were being dropped from multi-line event data. This does not affect use of SSE::Client within the LaunchDarkly SDK, because LaunchDarkly streams consist of JSON data so unescaped linefeeds are not significant, but it could affect uses of this library outside of the SDK.

2.1.0

11 Aug 19:37
Compare
Choose a tag to compare

[2.1.0] - 2021-08-11

Added:

  • New closed? method tests whether close has been called on the client. (Thanks, qcn!)

2.0.1

10 Aug 20:29
Compare
Choose a tag to compare

[2.0.1] - 2021-08-10

Changed:

  • The dependency version constraint for the http gem is now looser: it allows 5.x versions as well as 4.x. The breaking changes in http v5.0.0 do not affect ld-eventsource.
  • The project's build now uses v2.2.10 of bundler due to known vulnerabilities in other versions.
  • Gemfile.lock has been removed from source control. As this is a library project, the lockfile never affected application code that used this gem, but only affected the gem's own CI build. It is preferable for the CI build to refer only to the gemspec so that it resolves dependencies the same way an application using this gem would, rather than using pinned dependencies that an application would not use.

2.0.0

26 Jan 18:19
Compare
Choose a tag to compare

[2.0.0] - 2021-01-26

Added:

  • Added a socket_factory configuration option which can be used for socket creation by the HTTP client if provided. The value of socket_factory must be an object providing an open(uri, timeout) method and returning a connected socket.

Changed:

  • Switched to the http gem instead of socketry and a custom HTTP client.
  • Dropped support for Ruby < version 2.5
  • Dropped support for JRuby < version 9.2

1.0.3

18 Mar 01:11
Compare
Choose a tag to compare

[1.0.3] - 2020-03-17

Fixed:

  • The backoff delay logic for reconnecting after a stream failure was broken so that if a failure occurred after a stream had been active for at least reconnect_reset_interval (default 60 seconds), retries would use no delay, potentially causing a flood of requests and a spike in CPU usage.

1.0.2

10 Mar 17:42
Compare
Choose a tag to compare

[1.0.2] - 2020-03-10

Removed:

  • Removed an unused dependency on rake. There are no other changes in this release.

1.0.1

11 Jul 00:38
Compare
Choose a tag to compare

Fixed:

  • Calling close on the client could cause a misleading warning message in the log, such as Unexpected error from event source: #<IOError: stream closed in another thread>.