skyfall 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8fb36995d08abb6e93e1ce9f29ca74a88cea54bf21b3a1ae0d66a1cb9feb9240
4
- data.tar.gz: b9c21937b269d0cae220563bd912ce13d0d381bec920a139d40c33b6ace06253
3
+ metadata.gz: 17dd2389545a6bd5c9c3483a89f95e40a62cf2014e263f69d3590cf651920865
4
+ data.tar.gz: 9fe379e3d713c50e4a4700941660b529827e2329e200859ddea58b7113da1c3b
5
5
  SHA512:
6
- metadata.gz: f71bc939578c8fd50278562c28c19e00e558297e93440f1627b567df8f0c5fa3dc88b22efa2cd5a284fc58c241d1f66a21f9c482b7dda3fc799263ebfd777ee0
7
- data.tar.gz: 579db31d36c8fcee844f3d26193eea2fcdc9721e037ac5c6d1e1ee20362059f9051afd1fb56fab4ba15e566add9571751e85d8b0663fda190f80756959882468
6
+ metadata.gz: e9f7c603360a483241cbd6b2af8b49b315149b308c2064332b42d9fa7b27fd302c1b181c6fc7a60871f1dfead09cc3621ed2b9106db2680e0919f12119af881d
7
+ data.tar.gz: e8c7da9dc57730ded46de52cc7e500d84129782bd534c2163205330143bb1a5ec0f24feb39a86e440c073972b1c4af3840ce688e9caf55177003d140267c6473
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.6.0] - 2025-06-25
2
+
3
+ - significantly speeded up reading of events from the binary firehose (`Skyfall::Firehose`) - up to 4-5x faster than before
4
+ - removed the `Skyfall::Stream.new` constructor deprecated in 0.5.0
5
+
1
6
  ## [0.5.1] - 2025-05-18
2
7
 
3
8
  - added support for the new `#sync` message type
@@ -13,13 +13,6 @@ module Skyfall
13
13
 
14
14
  attr_accessor :cursor
15
15
 
16
- def self.new(server, endpoint, cursor = nil)
17
- # to be removed in 0.6
18
- instance = self.allocate
19
- instance.send(:initialize, server, endpoint, cursor)
20
- instance
21
- end
22
-
23
16
  def initialize(server, endpoint, cursor = nil)
24
17
  require_relative 'firehose/message'
25
18
  super(server)
@@ -34,7 +27,7 @@ module Skyfall
34
27
  end
35
28
 
36
29
  def handle_message(msg)
37
- data = msg.data.pack('C*')
30
+ data = msg.data
38
31
  @handlers[:raw_message]&.call(data)
39
32
 
40
33
  if @handlers[:message]
@@ -6,13 +6,6 @@ require 'uri'
6
6
 
7
7
  module Skyfall
8
8
  class Jetstream < Stream
9
- def self.new(server, params = {})
10
- # to be removed in 0.6
11
- instance = self.allocate
12
- instance.send(:initialize, server, params)
13
- instance
14
- end
15
-
16
9
  attr_accessor :cursor
17
10
 
18
11
  def initialize(server, params = {})
@@ -12,18 +12,6 @@ module Skyfall
12
12
  attr_accessor :auto_reconnect, :last_update, :user_agent
13
13
  attr_accessor :heartbeat_timeout, :heartbeat_interval, :check_heartbeat
14
14
 
15
- def self.new(server, endpoint = nil, cursor = nil)
16
- # to be removed in 0.6
17
- if endpoint || cursor
18
- STDERR.puts "Warning: Skyfall::Stream has been renamed to Skyfall::Firehose. This initializer will be removed in the next version."
19
- Firehose.new(server, endpoint, cursor)
20
- else
21
- instance = self.allocate
22
- instance.send(:initialize, server)
23
- instance
24
- end
25
- end
26
-
27
15
  def initialize(service)
28
16
  @root_url = build_root_url(service)
29
17
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Skyfall
4
- VERSION = "0.5.1"
4
+ VERSION = "0.6.0"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skyfall
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kuba Suder
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-19 00:00:00.000000000 Z
10
+ date: 2025-06-25 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: base32
@@ -89,14 +89,14 @@ dependencies:
89
89
  requirements:
90
90
  - - "~>"
91
91
  - !ruby/object:Gem::Version
92
- version: '0.11'
92
+ version: '0.12'
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '0.11'
99
+ version: '0.12'
100
100
  description: "\n Skyfall is a Ruby library for connecting to the \"firehose\" of
101
101
  the Bluesky social network, i.e. a websocket which\n streams all new posts and
102
102
  everything else happening on the Bluesky network in real time. The code connects
@@ -122,7 +122,6 @@ files:
122
122
  - lib/skyfall/collection.rb
123
123
  - lib/skyfall/errors.rb
124
124
  - lib/skyfall/extensions.rb
125
- - lib/skyfall/faye_ext.rb
126
125
  - lib/skyfall/firehose.rb
127
126
  - lib/skyfall/firehose/account_message.rb
128
127
  - lib/skyfall/firehose/commit_message.rb
@@ -1,48 +0,0 @@
1
- require 'websocket/driver'
2
- require_relative 'firehose'
3
-
4
- module WebSocket
5
- class Driver
6
- class Hybi
7
- def emit_message
8
- message = @extensions.process_incoming_message(@message)
9
- @message = nil
10
-
11
- payload = message.data
12
-
13
- case message.opcode
14
- when OPCODES[:text] then
15
- payload = Driver.encode(payload, Encoding::UTF_8)
16
- payload = nil unless payload.valid_encoding?
17
- # when OPCODES[:binary]
18
- # payload = payload.bytes.to_a
19
- end
20
-
21
- if payload
22
- emit(:message, MessageEvent.new(payload))
23
- else
24
- fail(:encoding_error, 'Could not decode a text frame as UTF-8')
25
- end
26
- rescue ::WebSocket::Extensions::ExtensionError => error
27
- fail(:extension_error, error.message)
28
- end
29
- end
30
- end
31
- end
32
-
33
- module Skyfall
34
- class Firehose
35
- def handle_message(msg)
36
- data = msg.data #.pack('C*')
37
- @handlers[:raw_message]&.call(data)
38
-
39
- if @handlers[:message]
40
- atp_message = Message.new(data)
41
- @cursor = atp_message.seq
42
- @handlers[:message].call(atp_message)
43
- else
44
- @cursor = nil
45
- end
46
- end
47
- end
48
- end