yrby 0.2.0-x86_64-linux → 0.2.1-x86_64-linux
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.md +9 -2
- data/README.md +6 -6
- data/lib/y/3.4/{y_ruby.so → yrby.so} +0 -0
- data/lib/y/4.0/{y_ruby.so → yrby.so} +0 -0
- data/lib/y/version.rb +1 -1
- data/lib/y.rb +4 -4
- 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: ff22dc8ae310daac142d0fe476d8659cfedff1b1f5cb88ccc9c46688e03fbe27
|
|
4
|
+
data.tar.gz: e3ff8171d93f3785b1d349173b7b7ebf12e1f762ea172bf48c4f9c7c40a0255f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4f3c2c3291521f47218ed70e4f2d9205efe7143312588d755079e87bbee32ac60e4c0fc45f7156453cc54c695d702ae53e91be8904cd6d1436551b8d10cddd31
|
|
7
|
+
data.tar.gz: 6796d3d50aceac6f5924be12d9cb9b1beb9ef8b3c80a75745d88f0b04dd930e1af9abb3119bd495b358af08a5703e58a45a368af9cea3c460b36bd45c9cc0054
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,13 @@ to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.2.1] - 2026-06-29
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **Internal:** renamed the native extension crate `y_ruby` → `yrby` (now loads
|
|
13
|
+
from `lib/y/yrby.bundle`). No public API change — `require "y"` and `Y::Doc`
|
|
14
|
+
are unchanged.
|
|
15
|
+
|
|
9
16
|
## [0.2.0] - 2026-06-28
|
|
10
17
|
|
|
11
18
|
First release under the **`yrby`** name (the project was previously developed
|
|
@@ -15,8 +22,8 @@ mirroring the `y-rb` gem's `Y::Doc` interface.
|
|
|
15
22
|
### Changed
|
|
16
23
|
- **Renamed `yrb-lite` → `yrby`.** Module `YrbLite` → top-level `Y`
|
|
17
24
|
(`Y::Doc`, `Y::Error`, `Y::VERSION`). Require path `require "yrb_lite"` →
|
|
18
|
-
`require "y"`.
|
|
19
|
-
`
|
|
25
|
+
`require "y"`. (The native extension crate shipped as `y_ruby` in 0.2.0; see
|
|
26
|
+
0.2.1 for its rename to `yrby`.)
|
|
20
27
|
|
|
21
28
|
### Added
|
|
22
29
|
- Native `Doc#read_text` and `Doc#read_map` readers — reconstruct plain text and
|
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
|
|
|
Binary file
|
|
Binary file
|
data/lib/y/version.rb
CHANGED
data/lib/y.rb
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
require_relative "y/version"
|
|
4
4
|
|
|
5
5
|
# Load the native extension. Precompiled gems ship it in a per-Ruby-version
|
|
6
|
-
# subdir (lib/y/<major.minor>/
|
|
7
|
-
# lib/y/
|
|
6
|
+
# subdir (lib/y/<major.minor>/yrby.<ext>); a source build puts it flat at
|
|
7
|
+
# lib/y/yrby.<ext>. Try the versioned path first, fall back.
|
|
8
8
|
begin
|
|
9
9
|
RUBY_VERSION =~ /(\d+\.\d+)/
|
|
10
|
-
require_relative "y/#{Regexp.last_match(1)}/
|
|
10
|
+
require_relative "y/#{Regexp.last_match(1)}/yrby"
|
|
11
11
|
rescue LoadError
|
|
12
|
-
require_relative "y/
|
|
12
|
+
require_relative "y/yrby"
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
module Y
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: yrby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: x86_64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- JP Camara
|
|
@@ -66,8 +66,8 @@ files:
|
|
|
66
66
|
- LICENSE
|
|
67
67
|
- README.md
|
|
68
68
|
- lib/y.rb
|
|
69
|
-
- lib/y/3.4/
|
|
70
|
-
- lib/y/4.0/
|
|
69
|
+
- lib/y/3.4/yrby.so
|
|
70
|
+
- lib/y/4.0/yrby.so
|
|
71
71
|
- lib/y/decoder.rb
|
|
72
72
|
- lib/y/decoder/version.rb
|
|
73
73
|
- lib/y/version.rb
|