yrby 0.2.3 → 0.3.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.
data/Cargo.lock ADDED
@@ -0,0 +1,644 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "aho-corasick"
7
+ version = "1.1.4"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
10
+ dependencies = [
11
+ "memchr",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "arc-swap"
16
+ version = "1.8.0"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e"
19
+ dependencies = [
20
+ "rustversion",
21
+ ]
22
+
23
+ [[package]]
24
+ name = "async-lock"
25
+ version = "3.4.2"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
28
+ dependencies = [
29
+ "event-listener",
30
+ "event-listener-strategy",
31
+ "pin-project-lite",
32
+ ]
33
+
34
+ [[package]]
35
+ name = "async-trait"
36
+ version = "0.1.89"
37
+ source = "registry+https://github.com/rust-lang/crates.io-index"
38
+ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
39
+ dependencies = [
40
+ "proc-macro2",
41
+ "quote",
42
+ "syn",
43
+ ]
44
+
45
+ [[package]]
46
+ name = "bindgen"
47
+ version = "0.69.5"
48
+ source = "registry+https://github.com/rust-lang/crates.io-index"
49
+ checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
50
+ dependencies = [
51
+ "bitflags",
52
+ "cexpr",
53
+ "clang-sys",
54
+ "itertools",
55
+ "lazy_static",
56
+ "lazycell",
57
+ "proc-macro2",
58
+ "quote",
59
+ "regex",
60
+ "rustc-hash",
61
+ "shlex",
62
+ "syn",
63
+ ]
64
+
65
+ [[package]]
66
+ name = "bitflags"
67
+ version = "2.10.0"
68
+ source = "registry+https://github.com/rust-lang/crates.io-index"
69
+ checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
70
+
71
+ [[package]]
72
+ name = "bumpalo"
73
+ version = "3.19.1"
74
+ source = "registry+https://github.com/rust-lang/crates.io-index"
75
+ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
76
+
77
+ [[package]]
78
+ name = "cexpr"
79
+ version = "0.6.0"
80
+ source = "registry+https://github.com/rust-lang/crates.io-index"
81
+ checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
82
+ dependencies = [
83
+ "nom",
84
+ ]
85
+
86
+ [[package]]
87
+ name = "cfg-if"
88
+ version = "1.0.4"
89
+ source = "registry+https://github.com/rust-lang/crates.io-index"
90
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
91
+
92
+ [[package]]
93
+ name = "clang-sys"
94
+ version = "1.8.1"
95
+ source = "registry+https://github.com/rust-lang/crates.io-index"
96
+ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
97
+ dependencies = [
98
+ "glob",
99
+ "libc",
100
+ "libloading",
101
+ ]
102
+
103
+ [[package]]
104
+ name = "concurrent-queue"
105
+ version = "2.5.0"
106
+ source = "registry+https://github.com/rust-lang/crates.io-index"
107
+ checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
108
+ dependencies = [
109
+ "crossbeam-utils",
110
+ ]
111
+
112
+ [[package]]
113
+ name = "crossbeam-utils"
114
+ version = "0.8.21"
115
+ source = "registry+https://github.com/rust-lang/crates.io-index"
116
+ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
117
+
118
+ [[package]]
119
+ name = "dashmap"
120
+ version = "6.1.0"
121
+ source = "registry+https://github.com/rust-lang/crates.io-index"
122
+ checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
123
+ dependencies = [
124
+ "cfg-if",
125
+ "crossbeam-utils",
126
+ "hashbrown",
127
+ "lock_api",
128
+ "once_cell",
129
+ "parking_lot_core",
130
+ ]
131
+
132
+ [[package]]
133
+ name = "either"
134
+ version = "1.15.0"
135
+ source = "registry+https://github.com/rust-lang/crates.io-index"
136
+ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
137
+
138
+ [[package]]
139
+ name = "event-listener"
140
+ version = "5.4.1"
141
+ source = "registry+https://github.com/rust-lang/crates.io-index"
142
+ checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
143
+ dependencies = [
144
+ "concurrent-queue",
145
+ "parking",
146
+ "pin-project-lite",
147
+ ]
148
+
149
+ [[package]]
150
+ name = "event-listener-strategy"
151
+ version = "0.5.4"
152
+ source = "registry+https://github.com/rust-lang/crates.io-index"
153
+ checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
154
+ dependencies = [
155
+ "event-listener",
156
+ "pin-project-lite",
157
+ ]
158
+
159
+ [[package]]
160
+ name = "fastrand"
161
+ version = "2.3.0"
162
+ source = "registry+https://github.com/rust-lang/crates.io-index"
163
+ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
164
+ dependencies = [
165
+ "getrandom",
166
+ ]
167
+
168
+ [[package]]
169
+ name = "getrandom"
170
+ version = "0.2.17"
171
+ source = "registry+https://github.com/rust-lang/crates.io-index"
172
+ checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
173
+ dependencies = [
174
+ "cfg-if",
175
+ "js-sys",
176
+ "libc",
177
+ "wasi",
178
+ "wasm-bindgen",
179
+ ]
180
+
181
+ [[package]]
182
+ name = "glob"
183
+ version = "0.3.3"
184
+ source = "registry+https://github.com/rust-lang/crates.io-index"
185
+ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
186
+
187
+ [[package]]
188
+ name = "hashbrown"
189
+ version = "0.14.5"
190
+ source = "registry+https://github.com/rust-lang/crates.io-index"
191
+ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
192
+
193
+ [[package]]
194
+ name = "itertools"
195
+ version = "0.12.1"
196
+ source = "registry+https://github.com/rust-lang/crates.io-index"
197
+ checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
198
+ dependencies = [
199
+ "either",
200
+ ]
201
+
202
+ [[package]]
203
+ name = "itoa"
204
+ version = "1.0.17"
205
+ source = "registry+https://github.com/rust-lang/crates.io-index"
206
+ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
207
+
208
+ [[package]]
209
+ name = "js-sys"
210
+ version = "0.3.85"
211
+ source = "registry+https://github.com/rust-lang/crates.io-index"
212
+ checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
213
+ dependencies = [
214
+ "once_cell",
215
+ "wasm-bindgen",
216
+ ]
217
+
218
+ [[package]]
219
+ name = "lazy_static"
220
+ version = "1.5.0"
221
+ source = "registry+https://github.com/rust-lang/crates.io-index"
222
+ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
223
+
224
+ [[package]]
225
+ name = "lazycell"
226
+ version = "1.3.0"
227
+ source = "registry+https://github.com/rust-lang/crates.io-index"
228
+ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
229
+
230
+ [[package]]
231
+ name = "libc"
232
+ version = "0.2.180"
233
+ source = "registry+https://github.com/rust-lang/crates.io-index"
234
+ checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
235
+
236
+ [[package]]
237
+ name = "libloading"
238
+ version = "0.8.9"
239
+ source = "registry+https://github.com/rust-lang/crates.io-index"
240
+ checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
241
+ dependencies = [
242
+ "cfg-if",
243
+ "windows-link",
244
+ ]
245
+
246
+ [[package]]
247
+ name = "lock_api"
248
+ version = "0.4.14"
249
+ source = "registry+https://github.com/rust-lang/crates.io-index"
250
+ checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
251
+ dependencies = [
252
+ "scopeguard",
253
+ ]
254
+
255
+ [[package]]
256
+ name = "magnus"
257
+ version = "0.8.2"
258
+ source = "registry+https://github.com/rust-lang/crates.io-index"
259
+ checksum = "3b36a5b126bbe97eb0d02d07acfeb327036c6319fd816139a49824a83b7f9012"
260
+ dependencies = [
261
+ "magnus-macros",
262
+ "rb-sys",
263
+ "rb-sys-env 0.2.3",
264
+ "seq-macro",
265
+ ]
266
+
267
+ [[package]]
268
+ name = "magnus-macros"
269
+ version = "0.8.0"
270
+ source = "registry+https://github.com/rust-lang/crates.io-index"
271
+ checksum = "47607461fd8e1513cb4f2076c197d8092d921a1ea75bd08af97398f593751892"
272
+ dependencies = [
273
+ "proc-macro2",
274
+ "quote",
275
+ "syn",
276
+ ]
277
+
278
+ [[package]]
279
+ name = "memchr"
280
+ version = "2.7.6"
281
+ source = "registry+https://github.com/rust-lang/crates.io-index"
282
+ checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
283
+
284
+ [[package]]
285
+ name = "minimal-lexical"
286
+ version = "0.2.1"
287
+ source = "registry+https://github.com/rust-lang/crates.io-index"
288
+ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
289
+
290
+ [[package]]
291
+ name = "nom"
292
+ version = "7.1.3"
293
+ source = "registry+https://github.com/rust-lang/crates.io-index"
294
+ checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
295
+ dependencies = [
296
+ "memchr",
297
+ "minimal-lexical",
298
+ ]
299
+
300
+ [[package]]
301
+ name = "once_cell"
302
+ version = "1.21.3"
303
+ source = "registry+https://github.com/rust-lang/crates.io-index"
304
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
305
+
306
+ [[package]]
307
+ name = "parking"
308
+ version = "2.2.1"
309
+ source = "registry+https://github.com/rust-lang/crates.io-index"
310
+ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
311
+
312
+ [[package]]
313
+ name = "parking_lot_core"
314
+ version = "0.9.12"
315
+ source = "registry+https://github.com/rust-lang/crates.io-index"
316
+ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
317
+ dependencies = [
318
+ "cfg-if",
319
+ "libc",
320
+ "redox_syscall",
321
+ "smallvec",
322
+ "windows-link",
323
+ ]
324
+
325
+ [[package]]
326
+ name = "pin-project-lite"
327
+ version = "0.2.16"
328
+ source = "registry+https://github.com/rust-lang/crates.io-index"
329
+ checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
330
+
331
+ [[package]]
332
+ name = "proc-macro2"
333
+ version = "1.0.105"
334
+ source = "registry+https://github.com/rust-lang/crates.io-index"
335
+ checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
336
+ dependencies = [
337
+ "unicode-ident",
338
+ ]
339
+
340
+ [[package]]
341
+ name = "quote"
342
+ version = "1.0.43"
343
+ source = "registry+https://github.com/rust-lang/crates.io-index"
344
+ checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
345
+ dependencies = [
346
+ "proc-macro2",
347
+ ]
348
+
349
+ [[package]]
350
+ name = "rb-sys"
351
+ version = "0.9.124"
352
+ source = "registry+https://github.com/rust-lang/crates.io-index"
353
+ checksum = "c85c4188462601e2aa1469def389c17228566f82ea72f137ed096f21591bc489"
354
+ dependencies = [
355
+ "rb-sys-build",
356
+ ]
357
+
358
+ [[package]]
359
+ name = "rb-sys-build"
360
+ version = "0.9.124"
361
+ source = "registry+https://github.com/rust-lang/crates.io-index"
362
+ checksum = "568068db4102230882e6d4ae8de6632e224ca75fe5970f6e026a04e91ed635d3"
363
+ dependencies = [
364
+ "bindgen",
365
+ "lazy_static",
366
+ "proc-macro2",
367
+ "quote",
368
+ "regex",
369
+ "shell-words",
370
+ "syn",
371
+ ]
372
+
373
+ [[package]]
374
+ name = "rb-sys-env"
375
+ version = "0.1.2"
376
+ source = "registry+https://github.com/rust-lang/crates.io-index"
377
+ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
378
+
379
+ [[package]]
380
+ name = "rb-sys-env"
381
+ version = "0.2.3"
382
+ source = "registry+https://github.com/rust-lang/crates.io-index"
383
+ checksum = "cca7ad6a7e21e72151d56fe2495a259b5670e204c3adac41ee7ef676ea08117a"
384
+
385
+ [[package]]
386
+ name = "redox_syscall"
387
+ version = "0.5.18"
388
+ source = "registry+https://github.com/rust-lang/crates.io-index"
389
+ checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
390
+ dependencies = [
391
+ "bitflags",
392
+ ]
393
+
394
+ [[package]]
395
+ name = "regex"
396
+ version = "1.12.2"
397
+ source = "registry+https://github.com/rust-lang/crates.io-index"
398
+ checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
399
+ dependencies = [
400
+ "aho-corasick",
401
+ "memchr",
402
+ "regex-automata",
403
+ "regex-syntax",
404
+ ]
405
+
406
+ [[package]]
407
+ name = "regex-automata"
408
+ version = "0.4.13"
409
+ source = "registry+https://github.com/rust-lang/crates.io-index"
410
+ checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
411
+ dependencies = [
412
+ "aho-corasick",
413
+ "memchr",
414
+ "regex-syntax",
415
+ ]
416
+
417
+ [[package]]
418
+ name = "regex-syntax"
419
+ version = "0.8.8"
420
+ source = "registry+https://github.com/rust-lang/crates.io-index"
421
+ checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
422
+
423
+ [[package]]
424
+ name = "rustc-hash"
425
+ version = "1.1.0"
426
+ source = "registry+https://github.com/rust-lang/crates.io-index"
427
+ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
428
+
429
+ [[package]]
430
+ name = "rustversion"
431
+ version = "1.0.22"
432
+ source = "registry+https://github.com/rust-lang/crates.io-index"
433
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
434
+
435
+ [[package]]
436
+ name = "scopeguard"
437
+ version = "1.2.0"
438
+ source = "registry+https://github.com/rust-lang/crates.io-index"
439
+ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
440
+
441
+ [[package]]
442
+ name = "seq-macro"
443
+ version = "0.3.6"
444
+ source = "registry+https://github.com/rust-lang/crates.io-index"
445
+ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
446
+
447
+ [[package]]
448
+ name = "serde"
449
+ version = "1.0.228"
450
+ source = "registry+https://github.com/rust-lang/crates.io-index"
451
+ checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
452
+ dependencies = [
453
+ "serde_core",
454
+ "serde_derive",
455
+ ]
456
+
457
+ [[package]]
458
+ name = "serde_core"
459
+ version = "1.0.228"
460
+ source = "registry+https://github.com/rust-lang/crates.io-index"
461
+ checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
462
+ dependencies = [
463
+ "serde_derive",
464
+ ]
465
+
466
+ [[package]]
467
+ name = "serde_derive"
468
+ version = "1.0.228"
469
+ source = "registry+https://github.com/rust-lang/crates.io-index"
470
+ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
471
+ dependencies = [
472
+ "proc-macro2",
473
+ "quote",
474
+ "syn",
475
+ ]
476
+
477
+ [[package]]
478
+ name = "serde_json"
479
+ version = "1.0.149"
480
+ source = "registry+https://github.com/rust-lang/crates.io-index"
481
+ checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
482
+ dependencies = [
483
+ "itoa",
484
+ "memchr",
485
+ "serde",
486
+ "serde_core",
487
+ "zmij",
488
+ ]
489
+
490
+ [[package]]
491
+ name = "shell-words"
492
+ version = "1.1.1"
493
+ source = "registry+https://github.com/rust-lang/crates.io-index"
494
+ checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77"
495
+
496
+ [[package]]
497
+ name = "shlex"
498
+ version = "1.3.0"
499
+ source = "registry+https://github.com/rust-lang/crates.io-index"
500
+ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
501
+
502
+ [[package]]
503
+ name = "smallstr"
504
+ version = "0.3.1"
505
+ source = "registry+https://github.com/rust-lang/crates.io-index"
506
+ checksum = "862077b1e764f04c251fe82a2ef562fd78d7cadaeb072ca7c2bcaf7217b1ff3b"
507
+ dependencies = [
508
+ "smallvec",
509
+ ]
510
+
511
+ [[package]]
512
+ name = "smallvec"
513
+ version = "1.15.1"
514
+ source = "registry+https://github.com/rust-lang/crates.io-index"
515
+ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
516
+
517
+ [[package]]
518
+ name = "syn"
519
+ version = "2.0.114"
520
+ source = "registry+https://github.com/rust-lang/crates.io-index"
521
+ checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
522
+ dependencies = [
523
+ "proc-macro2",
524
+ "quote",
525
+ "unicode-ident",
526
+ ]
527
+
528
+ [[package]]
529
+ name = "thiserror"
530
+ version = "2.0.18"
531
+ source = "registry+https://github.com/rust-lang/crates.io-index"
532
+ checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
533
+ dependencies = [
534
+ "thiserror-impl",
535
+ ]
536
+
537
+ [[package]]
538
+ name = "thiserror-impl"
539
+ version = "2.0.18"
540
+ source = "registry+https://github.com/rust-lang/crates.io-index"
541
+ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
542
+ dependencies = [
543
+ "proc-macro2",
544
+ "quote",
545
+ "syn",
546
+ ]
547
+
548
+ [[package]]
549
+ name = "unicode-ident"
550
+ version = "1.0.22"
551
+ source = "registry+https://github.com/rust-lang/crates.io-index"
552
+ checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
553
+
554
+ [[package]]
555
+ name = "wasi"
556
+ version = "0.11.1+wasi-snapshot-preview1"
557
+ source = "registry+https://github.com/rust-lang/crates.io-index"
558
+ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
559
+
560
+ [[package]]
561
+ name = "wasm-bindgen"
562
+ version = "0.2.108"
563
+ source = "registry+https://github.com/rust-lang/crates.io-index"
564
+ checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
565
+ dependencies = [
566
+ "cfg-if",
567
+ "once_cell",
568
+ "rustversion",
569
+ "wasm-bindgen-macro",
570
+ "wasm-bindgen-shared",
571
+ ]
572
+
573
+ [[package]]
574
+ name = "wasm-bindgen-macro"
575
+ version = "0.2.108"
576
+ source = "registry+https://github.com/rust-lang/crates.io-index"
577
+ checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
578
+ dependencies = [
579
+ "quote",
580
+ "wasm-bindgen-macro-support",
581
+ ]
582
+
583
+ [[package]]
584
+ name = "wasm-bindgen-macro-support"
585
+ version = "0.2.108"
586
+ source = "registry+https://github.com/rust-lang/crates.io-index"
587
+ checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
588
+ dependencies = [
589
+ "bumpalo",
590
+ "proc-macro2",
591
+ "quote",
592
+ "syn",
593
+ "wasm-bindgen-shared",
594
+ ]
595
+
596
+ [[package]]
597
+ name = "wasm-bindgen-shared"
598
+ version = "0.2.108"
599
+ source = "registry+https://github.com/rust-lang/crates.io-index"
600
+ checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
601
+ dependencies = [
602
+ "unicode-ident",
603
+ ]
604
+
605
+ [[package]]
606
+ name = "windows-link"
607
+ version = "0.2.1"
608
+ source = "registry+https://github.com/rust-lang/crates.io-index"
609
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
610
+
611
+ [[package]]
612
+ name = "yrby"
613
+ version = "0.1.0"
614
+ dependencies = [
615
+ "magnus",
616
+ "rb-sys",
617
+ "rb-sys-env 0.1.2",
618
+ "serde_json",
619
+ "yrs",
620
+ ]
621
+
622
+ [[package]]
623
+ name = "yrs"
624
+ version = "0.27.2"
625
+ source = "registry+https://github.com/rust-lang/crates.io-index"
626
+ checksum = "ccc6a0094c76c87b1b72ca0579bf7aa00f540957182264e6561cbde707c2ce51"
627
+ dependencies = [
628
+ "arc-swap",
629
+ "async-lock",
630
+ "async-trait",
631
+ "dashmap",
632
+ "fastrand",
633
+ "serde",
634
+ "serde_json",
635
+ "smallstr",
636
+ "smallvec",
637
+ "thiserror",
638
+ ]
639
+
640
+ [[package]]
641
+ name = "zmij"
642
+ version = "1.0.14"
643
+ source = "registry+https://github.com/rust-lang/crates.io-index"
644
+ checksum = "bd8f3f50b848df28f887acb68e41201b5aea6bc8a8dacc00fb40635ff9a72fea"
data/README.md CHANGED
@@ -142,18 +142,39 @@ doc = Y::Doc.new(12345) # specific client ID (used for CRDT identity)
142
142
 
143
143
  # Encoding
144
144
  doc.encode_state_vector # => current state vector
145
- doc.encode_state_as_update # => full update
145
+ doc.encode_state_as_update # => full update (lossless: keeps pending)
146
146
  doc.encode_state_as_update(sv) # => update diff against state vector
147
+ doc.compacted_state_update # => full update, gap-free (excludes pending)
147
148
 
148
149
  # Applying updates
149
150
  doc.apply_update(update_bytes) # apply raw V1 update
151
+ doc.pending? # => true if holding un-integrable pending structs
150
152
 
151
153
  # Sync protocol
152
154
  doc.sync_step1 # => SyncStep1 message (this doc's state vector)
153
155
  doc.handle_sync_message(data) # => [msg_type, sync_type, response]; answers a
154
- # peer's SyncStep1 with a SyncStep2
156
+ # peer's SyncStep1 with an integrated-only
157
+ # SyncStep2 (never serves pending structs)
155
158
  ```
156
159
 
160
+ ### Pending structs and gap-free state
161
+
162
+ If a doc applies an update whose causally-prior update is missing (a "gappy"
163
+ update), yrs parks it as a **pending** struct: the integrated state vector stays
164
+ empty, but the pending block is held as a recovery buffer and heals if the
165
+ missing dependency later arrives. `Doc#pending?` reports this.
166
+
167
+ Pending structs are *not* document state, so they must not cross the sync
168
+ boundary — a peer that receives one can't integrate it and gets stuck. Two
169
+ guarantees keep serving safe:
170
+
171
+ - `handle_sync_message` answers `SyncStep1` with **integrated-only** state, so a
172
+ server never serves a struct it can't integrate itself (this is automatic).
173
+ - `Doc#compacted_state_update` gives you the same gap-free full-state update for
174
+ when you persist or hand off state yourself. It's non-destructive (the doc
175
+ keeps its pending), while `encode_state_as_update` stays lossless so you can
176
+ still preserve the raw pending bytes for recovery.
177
+
157
178
  ### Protocol codec (module functions)
158
179
 
159
180
  Classifying and unwrapping wire frames is stateless, so it's exposed as
@@ -221,6 +242,21 @@ servers:
221
242
  causal dependencies are already in the store (checked against `on_load`); a
222
243
  causally-incomplete update triggers a resync instead, so the log always
223
244
  rebuilds cleanly.
245
+ - **An unhealable gap is dropped, not resynced forever.** A resync heals a gap
246
+ whose missing dependency is still in flight. But a *permanently*-orphaned update
247
+ (its dependency is gone for good) stays gappy through every resync, and a client
248
+ retransmitting it would loop endlessly (server resyncs → client resends →
249
+ repeat). After `gap_strike_limit` rejections of the same update on one
250
+ connection (default 3, minimum 2), the channel settles it with
251
+ `{ "ack" => id, "dropped" => true }` and drops it instead of resyncing again —
252
+ breaking the loop while never dropping a *healable* gap (those heal within a
253
+ resync or two, and healing frees the strike). The `dropped` flag lets the
254
+ client surface the loss (`yrby-client` reports it via `onError`) instead of
255
+ silently showing synced. Set `gap_strike_limit nil` to disable. Works on both
256
+ transports: plain ActionCable keeps strikes on the channel instance; under
257
+ AnyCable (fresh instance per RPC command) they persist through
258
+ anycable-rails' `state_attr_accessor` (istate), declared automatically when
259
+ anycable-rails is loaded.
224
260
  - **`on_change` is at-least-once, and the durable guarantee is that replaying the
225
261
  log reconstructs the document.** Every update triggers `on_change` before it's acked or
226
262
  broadcast (record-before-distribute). If exactly-once updates matter for you, **you