1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
"""Sync payload compression — optional, user-configurable.
Compression is applied at the transport boundary, not inside the CRDT
engine. The Rust sync methods produce and consume raw bytes. This module
wraps those bytes with compress/decompress.
Built-in: ZlibCompression (default level=1 for best speed/ratio trade-off).
Custom: implement the SyncCompression protocol (compress + decompress methods).
Usage:
from silk.compression import ZlibCompression
comp = ZlibCompression() # level=1 by default
# Sender
payload = store_a.receive_sync_offer(offer_bytes)
compressed = comp.compress(payload)
# Receiver
payload = comp.decompress(compressed)
store_b.merge_sync_payload(payload)
"""
"""Protocol for sync payload compression.
Implement compress() and decompress() to use a custom algorithm.
Both must be pure functions: decompress(compress(data)) == data.
"""
...
...
"""Pass-through — no compression. For benchmarking baselines."""
return
return
"""zlib compression with configurable level.
Level 1 (default): best speed/ratio trade-off for sync payloads.
~3x compression at ~1ms per 200KB payload.
Level 6: Python's zlib default. Marginal size improvement, 3x slower.
Level 9: Maximum compression. Negligible improvement over 6, 6x slower than 1.
"""
=
return
return
return f