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
[]
= "offline-protocol"
= true
= true
= true
= true
# AGPL-3.0-only requires the license text to accompany the program, and a
# published crate ships on its own. Rather than `license-file = "../../LICENSE"`
# (which makes cargo warn that `license` and `license-file` are redundant on
# every invocation), each publishable crate carries its own byte-identical
# LICENSE copy; cargo packages every git-tracked file under the crate root, so
# it lands in the .crate archive. scripts/check-license-consistency.sh asserts
# the copies never drift.
= true
= true
= "Main protocol engine for the Offline Protocol SDK"
[]
= true
[]
= ["data"]
# Replicated documents. Gates the engine dependency and the store, never the
# configuration section, the storage categories, or the events: those are
# inert without the engine and gating them would fork the config surface and
# the events guard test for no binary saving.
= ["dep:offline-protocol-data"]
[]
= { = true }
= { = true }
= { = true }
= { = true }
# The sealed layer: the envelope codec this crate's send and receive paths
# encode with, and the canonical signing-payload construction the control
# plane signs and verifies over. Shared with a leaf node rather than
# restated here; see ADR 0022.
= { = true }
= { = true }
= { = true }
# Optional: the replicated-document layer. Default on, because the mobile
# bindings ship one FFI artifact and a feature-gated UDL object would be a
# runtime checksum mismatch rather than a build error. Native consumers that
# only want messaging opt out with `default-features = false` and pay none of
# the engine's bytes.
= { = true, = true }
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
# The Nostr author key is hex on the wire and hex in the discovery record, so
# the comparison that binds the two never crosses an encoding.
= { = true }
= "0.10"
= { = true }
= { = true }
= { = true }
[]
# The example drives the document API, which the `data` feature gates. Declared
# so that a `--no-default-features` build skips it instead of failing to
# compile a target that cannot exist in that configuration.
[[]]
= "replicated_notes"
= ["data"]