Git Product home page Git Product logo

ycs's Issues

[YArray][Fuzzing] Content desync with 3+ clients in a mixed-content YArray

Test Name: TestRepeatGeneratingYArrayTests
Test Outcome: Failed
Result Message: Assert.IsTrue failed.
Result StandardOutput:

Failure in the struct stores detected, test logs:
MAP by 1 at pos 0
---- MSG 1 -> 0, len 27: 2,25,0,0,1,1,0,0,1,7,7,5,97,114,114,97,121,5,1,1,1,1,0,1,1,0,0
DELETE by 0 at pos 0, len: 1, oldContent: Ycs.YMap
New content:
---- MSG 1 -> 2, len 27: 2,25,0,0,1,1,0,0,1,7,7,5,97,114,114,97,121,5,1,1,1,1,0,1,1,0,0
MAP by 0 at pos 0
DISCONNECT 2
MAP by 0 at pos 0
RECONNECT 2
ARRAY by 0 at pos 0
---- MSG 1 -> 0, len 34: 2,32,0,0,2,65,0,1,0,0,1,40,10,8,115,111,109,101,112,114,111,112,8,1,0,0,1,1,1,1,1,125,42,0
DELETE by 0 at pos 1, len: 1, oldContent: Ycs.YArray,Ycs.YMap,Ycs.YMap
New content: Ycs.YArray,Ycs.YMap
MAP by 0 at pos 1
MAP by 0 at pos 3
Flushing ALL
---- MSG 1 -> 0, len 28: 2,26,0,0,2,65,0,1,2,0,1,168,1,0,0,0,1,1,1,1,2,125,43,1,1,1,1,0
---- MSG 2 -> 0, len 5: 0,3,1,1,1
---- RPL 0 -> 2, len 136: 1,133,1,0,0,8,1,0,1,64,8,1,64,0,9,0,4,12,0,8,4,92,32,4,5,1,0,8,0,72,27,0,0,71,0,33,0,168,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,199,0,33,0,168,27,24,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,72,1,1,0,4,1,0,65,0,10,66,0,65,0,67,0,2,1,2,1,2,1,1,13,0,125,44,125,1,125,2,125,3,125,44,125,44,2,1,1,0,2,0,4,1,1,1,3,5,1,2,1
---- MSG 0 -> 2, len 7: 0,5,2,1,1,0,8
---- RPL 2 -> 0, len 27: 1,25,0,0,1,1,0,0,1,7,7,5,97,114,114,97,121,5,1,1,1,1,0,1,1,0,0
---- MSG 1 -> 2, len 5: 0,3,1,1,4
---- RPL 2 -> 1, len 27: 1,25,0,0,1,1,0,0,1,7,7,5,97,114,114,97,121,5,1,1,1,1,0,1,1,0,0
---- MSG 2 -> 0, len 27: 1,25,0,0,1,1,0,0,1,7,7,5,97,114,114,97,121,5,1,1,1,1,0,1,1,0,0
---- MSG 0 -> 2, len 35: 2,33,0,0,3,1,64,0,0,1,8,3,1,0,71,7,5,97,114,114,97,121,5,1,1,1,0,1,1,2,1,0,1,8,0
---- MSG 0 -> 2, len 43: 2,41,0,0,3,1,64,0,1,16,0,3,1,0,8,7,5,97,114,114,97,121,5,3,1,0,0,0,2,1,3,2,1,0,1,9,125,1,125,2,125,3,0
---- MSG 1 -> 0, len 28: 2,26,0,0,2,65,0,1,4,0,1,168,1,0,0,0,1,1,1,1,3,125,44,1,1,1,2,0
---- MSG 0 -> 2, len 88: 2,86,0,0,5,1,0,1,64,3,3,0,4,12,3,1,0,8,17,1,0,0,0,71,0,33,0,168,0,65,0,0,0,71,0,8,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,2,1,0,7,65,0,2,65,0,67,0,2,2,0,7,0,125,44,125,1,125,2,125,3,1,0,2,4,0,2,0
---- MSG 2 -> 1, len 5: 0,3,1,1,1
---- RPL 1 -> 2, len 42: 1,40,0,0,2,65,1,2,0,4,0,3,33,0,168,10,8,115,111,109,101,112,114,111,112,8,1,0,0,2,2,1,1,2,1,125,44,1,1,1,1,1
---- MSG 0 -> 1, len 31: 2,29,0,0,1,1,0,0,1,1,7,5,97,114,114,97,121,5,1,1,0,1,1,1,1,0,1,1,1,0,0
---- MSG 2 -> 1, len 27: 1,25,0,0,1,1,0,0,1,7,7,5,97,114,114,97,121,5,1,1,1,1,0,1,1,0,0
---- MSG 0 -> 1, len 35: 2,33,0,0,3,1,0,1,0,1,0,3,1,0,71,7,5,97,114,114,97,121,5,1,1,1,1,1,1,2,1,0,1,0,0
---- MSG 1 -> 2, len 42: 1,40,0,0,2,65,1,2,0,4,0,3,33,0,168,10,8,115,111,109,101,112,114,111,112,8,1,0,0,2,2,1,1,2,1,125,44,1,1,1,1,1
---- MSG 0 -> 2, len 39: 2,37,0,0,3,1,64,1,1,16,1,8,5,1,0,0,0,199,7,5,97,114,114,97,121,5,1,1,1,1,2,65,0,2,2,0,1,12,0
---- MSG 0 -> 2, len 50: 2,48,0,0,3,1,64,0,1,24,0,5,1,0,0,0,40,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,0,2,65,1,2,2,0,1,13,125,42,0
---- MSG 0 -> 1, len 48: 2,46,0,0,3,1,64,0,1,0,0,3,1,0,40,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,0,2,65,0,2,1,0,1,1,125,42,0
---- MSG 0 -> 2, len 43: 2,41,0,0,3,1,64,0,1,26,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,1,2,2,0,1,14,125,43,1,0,1,13,0
---- MSG 0 -> 1, len 41: 2,39,0,0,3,1,64,0,1,2,0,3,1,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,0,2,1,0,1,2,125,43,1,0,1,1,0
---- MSG 0 -> 2, len 43: 2,41,0,0,3,1,64,0,1,28,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,1,2,2,0,1,15,125,44,1,0,1,14,0
---- MSG 0 -> 1, len 41: 2,39,0,0,3,1,64,0,1,4,0,3,1,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,0,2,1,0,1,3,125,44,1,0,1,2,0
---- MSG 0 -> 1, len 35: 2,33,0,0,3,1,64,0,0,1,0,3,1,0,71,7,5,97,114,114,97,121,5,1,1,1,1,1,1,2,1,0,1,4,0
---- MSG 0 -> 2, len 40: 2,38,0,0,4,1,64,0,1,1,0,1,0,5,1,0,0,0,199,7,5,97,114,114,97,121,5,1,1,1,1,2,65,0,2,2,0,1,16,0
---- MSG 0 -> 2, len 50: 2,48,0,0,3,1,64,0,1,32,0,5,1,0,0,0,40,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,0,2,65,1,2,2,0,1,17,125,42,0
---- MSG 0 -> 2, len 43: 2,41,0,0,3,1,64,0,1,34,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,1,2,2,0,1,18,125,43,1,0,1,17,0
---- MSG 0 -> 2, len 43: 2,41,0,0,3,1,64,0,1,36,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,1,2,2,0,1,19,125,44,1,0,1,18,0
---- MSG 0 -> 1, len 48: 2,46,0,0,3,1,64,0,1,8,0,3,1,0,40,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,0,2,65,0,2,1,0,1,5,125,42,0
---- MSG 0 -> 1, len 41: 2,39,0,0,3,1,64,0,1,10,0,3,1,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,0,2,1,0,1,6,125,43,1,0,1,5,0
---- MSG 0 -> 2, len 136: 1,133,1,0,0,8,1,0,1,64,8,1,64,0,9,0,4,12,0,8,4,92,32,4,5,1,0,8,0,72,27,0,0,71,0,33,0,168,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,199,0,33,0,168,27,24,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,72,1,1,0,4,1,0,65,0,10,66,0,65,0,67,0,2,1,2,1,2,1,1,13,0,125,44,125,1,125,2,125,3,125,44,125,44,2,1,1,0,2,0,4,1,1,1,3,5,1,2,1
---- MSG 0 -> 1, len 41: 2,39,0,0,3,1,64,0,1,12,0,3,1,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,0,2,1,0,1,7,125,44,1,0,1,6,0
---- MSG 0 -> 1, len 35: 2,33,0,0,3,1,64,0,0,1,8,3,1,0,71,7,5,97,114,114,97,121,5,1,1,1,0,1,1,2,1,0,1,8,0
---- MSG 0 -> 1, len 43: 2,41,0,0,3,1,64,0,1,16,0,3,1,0,8,7,5,97,114,114,97,121,5,3,1,0,0,0,2,1,3,2,1,0,1,9,125,1,125,2,125,3,0
---- MSG 0 -> 1, len 88: 2,86,0,0,5,1,0,1,64,3,3,0,4,12,3,1,0,8,17,1,0,0,0,71,0,33,0,168,0,65,0,0,0,71,0,8,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,2,1,0,7,65,0,2,65,0,67,0,2,2,0,7,0,125,44,125,1,125,2,125,3,1,0,2,4,0,2,0
---- MSG 0 -> 1, len 39: 2,37,0,0,3,1,64,1,1,16,1,8,5,1,0,0,0,199,7,5,97,114,114,97,121,5,1,1,1,1,2,65,0,2,2,0,1,12,0
---- MSG 0 -> 1, len 50: 2,48,0,0,3,1,64,0,1,24,0,5,1,0,0,0,40,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,0,2,65,1,2,2,0,1,13,125,42,0
---- MSG 0 -> 1, len 43: 2,41,0,0,3,1,64,0,1,26,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,1,2,2,0,1,14,125,43,1,0,1,13,0
---- MSG 0 -> 1, len 43: 2,41,0,0,3,1,64,0,1,28,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,1,2,2,0,1,15,125,44,1,0,1,14,0
---- MSG 0 -> 1, len 40: 2,38,0,0,4,1,64,0,1,1,0,1,0,5,1,0,0,0,199,7,5,97,114,114,97,121,5,1,1,1,1,2,65,0,2,2,0,1,16,0
---- MSG 0 -> 1, len 50: 2,48,0,0,3,1,64,0,1,32,0,5,1,0,0,0,40,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,0,2,65,1,2,2,0,1,17,125,42,0
---- MSG 0 -> 1, len 43: 2,41,0,0,3,1,64,0,1,34,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,1,2,2,0,1,18,125,43,1,0,1,17,0
---- MSG 0 -> 1, len 43: 2,41,0,0,3,1,64,0,1,36,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,2,65,1,2,2,0,1,19,125,44,1,0,1,18,0
MAP by 0 at pos 4
ARRAY by 1 at pos 4
DELETE by 0 at pos 3, len: 1, oldContent: Ycs.YArray,Ycs.YMap,Ycs.YMap,Ycs.YMap,Ycs.YMap
New content: Ycs.YArray,Ycs.YMap,Ycs.YMap,Ycs.YMap
---- MSG 1 -> 0, len 124: 2,122,0,0,10,1,0,1,0,1,64,8,1,64,0,10,32,96,4,12,0,8,4,92,32,4,5,1,1,8,0,72,27,199,0,71,0,33,0,168,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,199,0,33,0,168,27,24,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,72,1,1,0,5,0,1,0,65,0,9,2,65,0,67,0,2,1,2,1,2,1,4,13,0,125,44,125,1,125,2,125,3,125,44,125,44,0
DELETE by 1 at pos 0, len: 4, oldContent: Ycs.YArray,Ycs.YMap,Ycs.YMap,Ycs.YMap,Ycs.YArray
New content: Ycs.YArray
DELETE by 0 at pos 2, len: 2, oldContent: Ycs.YArray,Ycs.YMap,Ycs.YMap,Ycs.YMap,Ycs.YArray
New content: Ycs.YArray,Ycs.YMap,Ycs.YArray
---- MSG 1 -> 0, len 129: 2,127,0,0,9,65,0,0,1,64,8,1,64,0,10,8,72,4,12,0,8,4,92,32,4,5,1,0,8,0,72,27,8,0,71,0,33,0,168,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,199,0,33,0,168,27,24,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,72,1,1,0,4,1,0,65,0,10,3,2,65,0,67,0,2,1,2,1,2,1,5,125,1,125,2,125,3,13,0,125,44,125,1,125,2,125,3,125,44,125,44,0
---- MSG 1 -> 0, len 105: 2,103,0,0,9,1,0,65,0,0,1,64,3,1,4,32,88,8,80,5,1,1,8,0,72,27,1,0,0,0,199,0,8,0,65,0,0,0,65,0,0,0,65,0,0,0,193,0,0,0,193,0,0,7,5,97,114,114,97,121,5,3,1,0,0,1,0,13,1,67,0,1,3,1,3,1,3,1,3,1,3,2,4,0,125,1,125,2,125,3,10,0,1,0,5,0,0,2,0,4,4,2,1,2,0
---- MSG 0 -> 2, len 40: 2,38,0,0,4,1,64,0,1,1,32,1,0,5,1,0,0,0,199,7,5,97,114,114,97,121,5,1,1,1,1,2,1,3,2,2,0,1,20,0
---- MSG 0 -> 1, len 40: 2,38,0,0,4,1,64,0,1,1,32,1,0,5,1,0,0,0,199,7,5,97,114,114,97,121,5,1,1,1,1,2,1,3,2,2,0,1,20,0
---- MSG 1 -> 2, len 124: 2,122,0,0,10,1,0,1,0,1,64,8,1,64,0,10,32,96,4,12,0,8,4,92,32,4,5,1,1,8,0,72,27,199,0,71,0,33,0,168,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,199,0,33,0,168,27,24,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,72,1,1,0,5,0,1,0,65,0,9,2,65,0,67,0,2,1,2,1,2,1,4,13,0,125,44,125,1,125,2,125,3,125,44,125,44,0
---- MSG 0 -> 1, len 51: 2,49,0,0,3,1,64,0,1,40,0,5,1,0,0,0,40,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,0,3,1,3,1,2,2,0,1,21,125,42,0
---- MSG 0 -> 1, len 44: 2,42,0,0,3,1,64,0,1,42,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,3,1,3,1,2,2,0,1,22,125,43,1,0,1,21,0
---- MSG 1 -> 2, len 129: 2,127,0,0,9,65,0,0,1,64,8,1,64,0,10,8,72,4,12,0,8,4,92,32,4,5,1,0,8,0,72,27,8,0,71,0,33,0,168,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,199,0,33,0,168,27,24,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,72,1,1,0,4,1,0,65,0,10,3,2,65,0,67,0,2,1,2,1,2,1,5,125,1,125,2,125,3,13,0,125,44,125,1,125,2,125,3,125,44,125,44,0
---- MSG 0 -> 2, len 51: 2,49,0,0,3,1,64,0,1,40,0,5,1,0,0,0,40,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,0,3,1,3,1,2,2,0,1,21,125,42,0
---- MSG 1 -> 2, len 105: 2,103,0,0,9,1,0,65,0,0,1,64,3,1,4,32,88,8,80,5,1,1,8,0,72,27,1,0,0,0,199,0,8,0,65,0,0,0,65,0,0,0,65,0,0,0,193,0,0,0,193,0,0,7,5,97,114,114,97,121,5,3,1,0,0,1,0,13,1,67,0,1,3,1,3,1,3,1,3,1,3,2,4,0,125,1,125,2,125,3,10,0,1,0,5,0,0,2,0,4,4,2,1,2,0
---- MSG 0 -> 1, len 44: 2,42,0,0,3,1,64,0,1,44,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,3,1,3,1,2,2,0,1,23,125,44,1,0,1,22,0
---- MSG 0 -> 1, len 149: 2,146,1,0,0,10,1,0,1,64,8,1,0,1,64,0,10,0,4,12,0,8,4,92,32,8,4,6,1,0,8,0,72,0,33,1,0,0,0,71,0,33,0,168,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,193,0,0,0,199,0,33,0,168,33,29,97,114,114,97,121,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,5,72,1,3,1,0,0,4,1,0,65,0,13,1,3,2,65,0,67,0,2,65,0,3,2,1,2,2,0,15,0,125,44,125,1,125,2,125,3,125,44,125,44,1,0,2,16,0,2,0
---- MSG 0 -> 2, len 44: 2,42,0,0,3,1,64,0,1,42,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,3,1,3,1,2,2,0,1,22,125,43,1,0,1,21,0
---- MSG 0 -> 2, len 44: 2,42,0,0,3,1,64,0,1,44,0,5,1,0,0,0,168,7,5,97,114,114,97,121,5,1,1,0,3,1,3,1,2,2,0,1,23,125,44,1,0,1,22,0
---- MSG 0 -> 1, len 125: 2,123,0,0,10,1,0,1,0,1,64,6,1,0,1,7,32,80,0,8,4,92,32,6,1,1,8,0,72,0,31,1,0,0,0,199,0,65,0,0,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,193,0,0,0,193,0,0,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,3,64,0,1,13,1,3,1,3,1,67,0,2,65,0,3,1,3,2,3,0,13,0,125,1,125,2,125,3,125,44,1,0,4,0,0,2,0,16,0,2,0
---- MSG 0 -> 2, len 149: 2,146,1,0,0,10,1,0,1,64,8,1,0,1,64,0,10,0,4,12,0,8,4,92,32,8,4,6,1,0,8,0,72,0,33,1,0,0,0,71,0,33,0,168,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,193,0,0,0,199,0,33,0,168,33,29,97,114,114,97,121,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,115,111,109,101,112,114,111,112,5,72,1,3,1,0,0,4,1,0,65,0,13,1,3,2,65,0,67,0,2,65,0,3,2,1,2,2,0,15,0,125,44,125,1,125,2,125,3,125,44,125,44,1,0,2,16,0,2,0
---- MSG 0 -> 2, len 125: 2,123,0,0,10,1,0,1,0,1,64,6,1,0,1,7,32,80,0,8,4,92,32,6,1,1,8,0,72,0,31,1,0,0,0,199,0,65,0,0,0,65,0,0,0,71,0,8,0,199,0,33,0,168,0,193,0,0,0,193,0,0,16,13,97,114,114,97,121,115,111,109,101,112,114,111,112,5,8,3,1,0,0,3,64,0,1,13,1,3,1,3,1,67,0,2,65,0,3,1,3,2,3,0,13,0,125,1,125,2,125,3,125,44,1,0,4,0,0,2,0,16,0,2,0

Upgrade to latest v13.6.7 and beyond

Hi,

I wonder how difficult it would be to upgrade to the latest versions of Yjs? I'm seriously considering using Ycs in my heavily Yjs-based project with .NET backend (because of my expertise and background).

So, I'd even consider contributing with such an update. But with my current understanding of Yjs, it is really hard for me to even estimate the amount of changes and work. And what's in the end missing because of using Yjs from two-years-ago.

While I see discussion in #5 about ydotnet, I just wonder does it still make sense or not to consider updating it?

Y.Xml

Hey, i work with Prosemirror.
I cant get this to work for me, because prosemirror uses XMLFragment
Is there a way to fix this?

XMLFragment would be nice as type :D

Yjs subdocuments guids do not match after applying an update from Ycs document

Describe the bug
Applying update from Ycs documents with subdocuments on Yjs documents generate new subdocuments guids.

To Reproduce
Steps to reproduce the behavior:

  1. With Ycs create a new root document.
  2. With Ycs create some subdocuments and add them to the root document.
  3. Apply update from Ycs root document to Yjs document.

For example:

// C# code

var document = new YDoc();
var subDoc1 = new YDoc(new YDocOptions(){Guid = "subdoc1"});
var subDoc2 = new YDoc(new YDocOptions(){Guid = "subdoc2"});
document.GetMap("subdocs").Set("subdoc1", subDoc1);
document.GetMap("subdocs").Set("subdoc2", subDoc2);
byte[] update = document.EncodeStateAsUpdateV2();

// send this update to Node.js (e. g. with Convert.FromBase64String())
// JavaScript code

const document = new Y.Doc()
Y.applyUpdateV2(document, updateFromYcs)

Expected behavior
Ycs subdocuments guids the same as Yjs subdocuments guids.

Screenshots
Yjs document state after applying:
image

Environment Information

  • Node.js (v14.16.0)
  • yjs (v13.4.14)

Additional context
Applying an update from a Yjs document with subdocuments to a Ycs document keeps guids as expected.
Applying an update from a Ycs document with subdocuments to the new Ycs document keeps guids as expected too.

Could you add functions to support using Ycs as a client?

I'm currently using Ycs as a library so I can interface with a Yjs websocket server. The intention is to use it as a client and so far i'm able to read and write sync steps and also send updates with EncodeStateAsUpdateV2.

However I can't see any exposed functionality to apply the update sent from the server when another edit has been made by a different client. Is this missing intentionally or is it something that i've just not been able to find? The update packet is only 10 bytes which I believe starts with a state vector and from what I can see the only function which takes that format is EncodeStateAsUpdateV2 but I think that just gives a local update up to that state vectors clock.

If you're not able to do this, could you point me to the function in the Yjs library and i'll have a go at writing + pull requesting my own. Am I right in thinking the Ycs library has only been written to be a Yjs server and will I bump into any more issues?

Thanks

Publish a Nuget package for ycs

As we were looking to use ycs in our project we noticed that there wasn't a Nuget package.
Publishing a Nuget package of this project would make it much more discoverable and consumable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.