yrby-actioncable 0.2.0 → 0.2.1
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 +4 -4
- data/CHANGELOG-actioncable.md +10 -2
- data/README.md +6 -6
- data/lib/y/action_cable/sync.rb +1 -1
- data/lib/y/action_cable/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1ab50fed7379fc20924fec613bc32b7c4b34f2cac85ed446c6f562bd31ae3f5f
|
|
4
|
+
data.tar.gz: 7d17034c1eca75b303c4c0b839f7b14c1c23745ce3629b8e68cb21e161570bef
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '06697a55539569ee6010e11d6b80c5eaceb6e9643c71f355c91a4e286aaf664a00698ef1893cc37dd5005e6d47fcfcac6a08b352029f3866da2660d918269995'
|
|
7
|
+
data.tar.gz: 7a3cab1a4fe6d5171ac7ada2312cc6ece5dbd10e896c27132927d158ce19dae1e6ac06b768ad392b20ba8def7c0579eaa314f67d01f0c3dbf07ac74b92aaec9a
|
data/CHANGELOG-actioncable.md
CHANGED
|
@@ -6,6 +6,13 @@ this project aims to follow [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.2.1] - 2026-06-29
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **Internal:** ActionCable stream-name prefix `y_ruby:` → `yrby:`.
|
|
13
|
+
Server-internal (broadcast + `stream_from` both use it) — no public API or
|
|
14
|
+
client-facing wire change. Depends on `yrby >= 0.2.1`.
|
|
15
|
+
|
|
9
16
|
## [0.2.0] - 2026-06-28
|
|
10
17
|
|
|
11
18
|
First release under the **`yrby-actioncable`** name (previously developed as
|
|
@@ -14,8 +21,9 @@ First release under the **`yrby-actioncable`** name (previously developed as
|
|
|
14
21
|
### Changed
|
|
15
22
|
- **Renamed `yrb-lite-actioncable` → `yrby-actioncable`.** Channel concern
|
|
16
23
|
`YrbLite::ActionCable::Sync` → **`Y::ActionCable::Sync`**; require
|
|
17
|
-
`require "yrb_lite/action_cable"` → `require "y/action_cable"`.
|
|
18
|
-
|
|
24
|
+
`require "yrb_lite/action_cable"` → `require "y/action_cable"`. (The stream
|
|
25
|
+
prefix shipped as `y_ruby:` in 0.2.0; see 0.2.1 for its rename to `yrby:`.)
|
|
26
|
+
Depends on `yrby >= 0.2.0`.
|
|
19
27
|
|
|
20
28
|
### Notes
|
|
21
29
|
- Full y-websocket protocol over ActionCable/AnyCable: origin-filtered relay,
|
data/README.md
CHANGED
|
@@ -20,7 +20,7 @@ end
|
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
On the browser, use the `ActionCableProvider` from the
|
|
23
|
-
[
|
|
23
|
+
[`yrby-client`](https://www.npmjs.com/package/yrby-client) npm package.
|
|
24
24
|
Integrates with any editor that includes Y.js support, such as Tiptap, ProseMirror
|
|
25
25
|
and [Lexxy](https://www.npmjs.com/package/lexxy-realtime).
|
|
26
26
|
|
|
@@ -30,7 +30,7 @@ Install the gem and npm package:
|
|
|
30
30
|
|
|
31
31
|
```
|
|
32
32
|
gem install yrby-actioncable # depends on yrby
|
|
33
|
-
npm install
|
|
33
|
+
npm install yrby-client
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## What you get
|
|
@@ -59,7 +59,7 @@ guarantees, correctness, and thread safety.
|
|
|
59
59
|
|
|
60
60
|
Towards that goal, `yrby` adds capabilities that may even stand out in the Yjs ecosystem:
|
|
61
61
|
|
|
62
|
-
- Built-in update acknowledgement: the `ActionCableProvider` in
|
|
62
|
+
- Built-in update acknowledgement: the `ActionCableProvider` in `yrby-client` will continue to
|
|
63
63
|
send updates until an ack is received from the server. [`yrby-actioncable`](https://rubygems.org/gems/yrby-actioncable)
|
|
64
64
|
only sends an ack when applying an update is successful. The goal is at-least-once delivery,
|
|
65
65
|
and because CRDTs are idempotent a duplicate update is effectively a no-op.
|
|
@@ -197,7 +197,7 @@ for the same document as long as they share the same store and cable adapter.
|
|
|
197
197
|
|
|
198
198
|
`on_load` and `on_change` are required. If either is missing, the channel fails
|
|
199
199
|
before it can acknowledge or broadcast edits. Presence is ephemeral:
|
|
200
|
-
awareness frames are relayed, and
|
|
200
|
+
awareness frames are relayed, and `yrby-client` sends a best-effort
|
|
201
201
|
presence-removal frame on disconnect/pagehide, with the client-side awareness
|
|
202
202
|
timeout as the fallback for abrupt disconnects.
|
|
203
203
|
|
|
@@ -315,7 +315,7 @@ client -> server { "update": "<base64 update>", "id": 42 }
|
|
|
315
315
|
server -> client { "ack": 42 } # update accepted; safe to forget
|
|
316
316
|
```
|
|
317
317
|
|
|
318
|
-
|
|
318
|
+
`yrby-client`'s `ActionCableProvider` handles this automatically. It keeps
|
|
319
319
|
the unacknowledged local document tail in a queue and sends the merged tail as a
|
|
320
320
|
single causally-complete delta. The id is the highest sequence in the batch, so
|
|
321
321
|
one `{ ack: id }` cumulatively confirms everything up to it. Because CRDT apply
|
|
@@ -324,7 +324,7 @@ re-acks. Awareness stays ephemeral and is not acked.
|
|
|
324
324
|
|
|
325
325
|
Presence (cursors, selections) is owned by the browser clients — the server
|
|
326
326
|
never sets or holds presence state, it only relays awareness frames opaquely.
|
|
327
|
-
See
|
|
327
|
+
See `yrby-client` for the client-side awareness API.
|
|
328
328
|
|
|
329
329
|
## Thread Safety
|
|
330
330
|
|
data/lib/y/action_cable/sync.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: yrby-actioncable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- JP Camara
|
|
@@ -29,14 +29,14 @@ dependencies:
|
|
|
29
29
|
requirements:
|
|
30
30
|
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.2.
|
|
32
|
+
version: 0.2.1
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.2.
|
|
39
|
+
version: 0.2.1
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: actioncable
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|