Skip to content

Releases: launchdarkly/ruby-eventsource

v2.2.6

15 Jul 15:23
45e2033
Compare
Choose a tag to compare

2.2.6 (2025-07-15)

Bug Fixes

  • Add logger as explicit dependency (#61) (50efb0d)
  • Update force_encoding to operate on unfrozen string (#60) (0e2e80d)

v2.2.5

14 Jul 17:10
ffd0ffa
Compare
Choose a tag to compare

2.2.5 (2025-07-14)

Bug Fixes

  • Bump minimum to ruby 3.1 (#57) (93a9947)
  • Explicitly mark buffer variable as unfrozen (#59) (ccf79af)

v2.2.4

29 Apr 13:37
a74139b
Compare
Choose a tag to compare

2.2.4 (2025-04-18)

Bug Fixes

  • Remove rake dependency from gemspec (#53) (8be0ccc)

v2.2.3

07 Mar 18:34
455445c
Compare
Choose a tag to compare

2.2.3 (2025-03-07)

Bug Fixes

  • Provide thread name for inspection (#46) (191fd68)

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.