Commit 8466d2b
feat(moon): bootstrap encoding codec primitives (#903)
* docs(moon): add detailed plan for encoding format
* docs(moon): design Change/Op IR for testing
* docs(moon): rename Change/Op structs without IR suffix
* feat(moon): bootstrap codec primitives
* feat(moon): add lz4 frame decoder
* feat(moon): implement sstable codec
* feat(moon): parse fastsnapshot/fastupdates bodies
* feat(moon): add container id/wrapper and change-block id
* feat(moon): add serde_columnar codecs
* feat(moon): add custom value codec
* fix(moon): match serde_columnar delta-of-delta empty encoding
* feat(moon): add ChangeBlock encoded-block codec
* feat(moon): add incremental rle/delta-of-delta decoding helpers
* feat(moon): decode change block header/meta and arenas
* feat(moon): add PositionArena v2 codec
* feat(moon): extend serde_columnar and value codecs
* feat(moon): decode ChangeBlock ops into Change/Op
* feat(moon): encode and transcode document blobs
* feat(moon): add JS transcode CLI with Node fs
* chore: sync Cargo.lock
* fix(moon): handle serde_columnar wrappers
* fix(moon): decode ContainerArena as columnar vec
* fix(moon): decode ContainerArena as vec of rows
* feat(moon): add postcard LoroValue and vv/frontiers codecs
* feat(moon): validate fastsnapshot oplog/state kv stores
* feat(moon): transcode container state snapshots
* test(loro): add optional MoonBit transcode e2e
* docs(moon): add ChangeBlock encoding notes
* feat(moon): re-encode FastUpdates ChangeBlocks
* test(loro): broaden MoonBit transcode e2e coverage
* docs(moon): note current e2e harness
* feat(moon): add decode-updates JSON output
* test(loro): verify Moon decodes text insert op
* feat(moon): export JsonSchema updates
* test(loro): verify Moon JsonSchema export
* test(loro): expand Moon JsonSchema export coverage
* docs(moon): document JsonSchema export
* feat(moon): encode FastUpdates from JsonSchema
* test(loro): e2e Moon encodes JsonSchema to updates
* docs(moon): document JsonSchema encode
* chore(skills): vendor moonbit agent guide
Upstream: moonbitlang/moonbit-agent-guide@e2b5be3
* refactor(moon): split JsonSchema export/import modules
* refactor(moon): split serde_columnar strategies
* refactor(moon): split ChangeBlock codec into files
* refactor(moon): derive Show/Eq for codec errors
* refactor(moon): make JsonSchema import field access safe
* style(moon): format with moon fmt
* refactor(moon): split state snapshot codecs
* refactor(moon): split postcard codecs
* refactor(moon): split JsonSchema import
* refactor(moon): split JsonSchema export
* refactor(moon): split custom value codec
* refactor(moon): split sstable codec
* refactor(moon): split change block encoder
* refactor(moon): split change block encoded ops
* refactor(moon): split delta-of-delta strategy
* test(moon): split change block tests
* refactor(moon): split changes_json renderer
* refactor(moon): split container id codecs
* refactor(moon): split JsonSchema import ops
* refactor(moon): extract serde_columnar rle core
* refactor(moon): dedupe delete-seq decode
* refactor(moon): split postcard common value codec
* refactor(moon): move delta-of-delta helpers
* chore: update Cargo.lock
* docs(moon): define ultimate e2e golden tests
* feat(loro): add moon golden generator CLI
* feat(moon): export deep JSON from snapshots
* fix(moon): align JsonSchema start_version for FastUpdates
* test(loro): add Moon golden JsonSchema/deep-json checks
* docs(moon): link ultimate golden test implementations
* test(loro): enable serde_json float_roundtrip
* test(loro): expand moon golden generator coverage
* fix(moon): sort JsonSchema changes by lamport
* test(loro): expand moon golden coverage matrix
* docs(moon): update e2e coverage status
* test(loro): add counter snapshot e2e (optional)
* fix(moon): export Counter ops in JsonSchema
* test(loro): add Counter JsonSchema e2e check
* feat(moon): support Counter JsonSchema import and LZ4 SSTable encode
* fix(moon): make lz4 encoder compatible with moon 0.1
* chore(loro): enable counter feature by default
* test(loro): add moon snapshot fuzz driver
* Fix dead container cache invalidation
* docs(encoding): align spec with impl
* fix(moon): preserve integer values in jsonschema import
- Decode JsonSchema number tokens into i64 when integral, even if the JSON parser doesn't retain the lexical repr.
- Add an edge e2e case covering varint/length boundaries and encode-jsonschema roundtrip.
* moon: harden encode-jsonschema
* docs/tests: strengthen Moon codec fuzzing
---------
Co-authored-by: Codex CLI <codex@openai.com>1 parent c22de68 commit 8466d2b
File tree
158 files changed
+17278
-9
lines changed- crates
- kv-store/tests
- testdata
- loro-internal/src/state
- loro
- examples
- tests
- docs
- moon
- cmd/loro_codec_cli
- loro_codec
- specs
- skills/moonbit
- references
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
158 files changed
+17278
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
55 | | - | |
56 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
57 | 64 | | |
58 | 65 | | |
59 | 66 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
| |||
0 commit comments