prosody 0.3.0 → 0.4.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: 196a6b96278af423d2ee3ab5d5f592f323dc2627feae114d10e3de408303fe2e
4
- data.tar.gz: a0c8f4d131c866cd2f42daeec7325acadfb8bbfe21b9bd3cf065d6117e00d134
3
+ metadata.gz: 6e796ed66be2610f629c69b181c1cac30155aa0c2196de69fc7a58538816caca
4
+ data.tar.gz: db008d5d6e205204100eb405ebd01937772a83c1d502cac5a7ef3998bf866099
5
5
  SHA512:
6
- metadata.gz: d30771d482d4e127f8e741b267980fe1708253384033264ee8ff86f47e4c2e6631dc442ac1486c417141d253a9e7186192258175387a1dcf723f6c4ca8e02fdd
7
- data.tar.gz: e87d3f251a828c8d23bfafaadfafccd3f0cc186d1fe33441af5ac63eaf72b84426dbc39f267134613e4a498943a281af0cb5fbeae6729ad423f2057cca305488
6
+ metadata.gz: 1b33f8d570c33a9172073f9ab94b8e253d6dd965cec4d06ea0637c030b6013e1c20c95c03a9715abb0de4ab1e68ba292efc3ae85e1e350d5c36d36d29c5c66ee
7
+ data.tar.gz: 6b8784b0f7dc8fec51a6c4f6b359df0335afb1f77abda27f8210c05a8991f994c17cca29e188a3cf733ee86f3501c24551177416922c32157dc53c081bd9d45d
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.3.0"
2
+ ".": "0.4.0"
3
3
  }
data/ARCHITECTURE.md CHANGED
@@ -79,6 +79,14 @@ end
79
79
 
80
80
  When processing thousands of messages, yielding allows much higher throughput because work continues during waits.
81
81
 
82
+ ### Keyed-State Scans Yield Per Step
83
+
84
+ Keyed-state traversal follows the same rule. `each` / `each_pair` (and their `reverse_*` variants) drive a native cursor
85
+ one chunk at a time: every step crosses the bridge through `Bridge::wait_for`, so the enumerating fiber yields while Rust
86
+ fetches the next chunk and resumes when it arrives. A scan therefore looks like an ordinary blocking loop but never blocks
87
+ the thread — other fibers keep running between steps — and the native cursor is closed via `ensure` when the loop
88
+ finishes, breaks, or raises.
89
+
82
90
  ## Architecture Overview
83
91
 
84
92
  Prosody combines a Rust core with a Ruby interface:
@@ -102,8 +110,10 @@ graph TD
102
110
 
103
111
  1. **Ruby Interface Layer**: The classes you interact with directly
104
112
  - `Prosody::Client`: The main entry point for applications
105
- - `Prosody::EventHandler`: Base class for handling messages
106
- - `Prosody::Message`: Represents a Kafka message
113
+ - `Prosody::EventHandler[Payload]`: Base class whose RBS payload parameter
114
+ is propagated to each handled message
115
+ - `Prosody::Message[Payload]`: Represents a Kafka message with a statically
116
+ typed JSON payload (`Prosody::json_value` by default)
107
117
 
108
118
  2. **Bridge**: The crucial connection between Ruby and Rust
109
119
  - Enables safe communication between languages
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.0](https://github.com/prosody-events/prosody-rb/compare/prosody/v0.3.0...prosody/v0.4.0) (2026-07-21)
4
+
5
+
6
+ ### Features
7
+
8
+ * **state:** add durable keyed state ([#26](https://github.com/prosody-events/prosody-rb/issues/26)) ([fb68411](https://github.com/prosody-events/prosody-rb/commit/fb6841125b1cb7bb3730965254f3205109da8fbe))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **release:** preserve release history boundary ([#28](https://github.com/prosody-events/prosody-rb/issues/28)) ([257cf86](https://github.com/prosody-events/prosody-rb/commit/257cf86e532c942feda5b1ce65af78c8365064d3))
14
+ * **release:** restore published release boundary ([#31](https://github.com/prosody-events/prosody-rb/issues/31)) ([2f4cda1](https://github.com/prosody-events/prosody-rb/commit/2f4cda104f9cf93e28b0d6c7bd8bd66da660b789))
15
+
3
16
  ## [0.3.0](https://github.com/prosody-events/prosody-rb/compare/prosody/v0.2.1...prosody/v0.3.0) (2026-05-18)
4
17
 
5
18