Yjs varint encoding:修订间差异

来自WHY42
Riguz留言 | 贡献
创建页面,内容为“<ref>https://github.com/yjs/y-protocols/blob/master/PROTOCOL.md</ref> Category:Yjs Category:CRDT
 
Riguz留言 | 贡献
无编辑摘要
第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的版本

[1]

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