Yjs varint encoding:修订间差异
创建页面,内容为“<ref>https://github.com/yjs/y-protocols/blob/master/PROTOCOL.md</ref> Category:Yjs Category:CRDT” |
无编辑摘要 |
||
第1行: | 第1行: | ||
<ref>https://github.com/yjs/y-protocols/blob/master/PROTOCOL.md</ref> | <ref>https://github.com/yjs/y-protocols/blob/master/PROTOCOL.md</ref> | ||
Yjs uses varint to encode content, which is similar in protobuf. | |||
Yjs encodes unsigned integer within range of 0-2^53-1, | |||
which is the max number supported by javascript<ref>https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER</ref>. | |||
<syntaxhighlight lang="python"> | |||
123456=0b111|1000100|1000000 | |||
->(1)1000000|(1)1000100|(0)____111 | |||
-> 0xc0 | 0xc4 | 0x07 | |||
</syntaxhighlight> | |||
[[Category:Yjs]] | [[Category:Yjs]] | ||
[[Category:CRDT]] | [[Category:CRDT]] |
2024年10月13日 (日) 13:42的版本
Yjs uses varint to encode content, which is similar in protobuf. Yjs encodes unsigned integer within range of 0-2^53-1, which is the max number supported by javascript[2].
123456=0b111|1000100|1000000
->(1)1000000|(1)1000100|(0)____111
-> 0xc0 | 0xc4 | 0x07