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
[]
= "tauri-plugin-syncular"
= "0.15.21"
= "2021"
= "A native syncular client inside the Tauri process, exposed to the webview as commands + events (consumes the Rust client core directly — no FFI)"
= "Apache-2.0"
= "https://github.com/syncular/syncular"
# Required by tauri-plugin's build script (it keys permission generation off
# the links name); must equal package.name.
= "tauri-plugin-syncular"
# Isolated from rust: Tauri's crate tree is heavy and must not bloat the
# main workspace's cargo test/clippy gate. This crate lives in its own
# workspace at bindings/tauri/ (see ../Cargo.toml) with path deps reaching
# across the workspace boundary into the client + command crates.
[]
# Path deps across the workspace boundary into the main rust tree — the plugin
# consumes the client core DIRECTLY and dispatches through the shared router.
# The version constraints are what a `cargo publish` resolves against the
# crates.io index (path deps are stripped at publish time).
= { = "../../../rust/crates/client", = "0.15.21" }
= { = "../../../rust/crates/command", = "0.15.21" }
= "2"
= { = "1", = ["derive"] }
= "1"
[]
= { = "2", = ["build"] }
[]
# The mock runtime (tauri::test) drives the plugin commands without a real
# window — a genuine round-trip through the Tauri IPC + invoke handler.
= { = "2", = ["test"] }
[]
# Default OFF: the lean build (client-local commands, offline apps, tests) has
# no HTTP/WS stack compiled in. Real apps enable `native-transport` for network
# sync/segments/blobs/realtime.
= []
= ["syncular-client/native-transport"]
# §5.11 client-side encryption. Native apps opt in explicitly; forwarding the
# feature through the plugin keeps encrypted schemas usable without reaching
# into the plugin's transitive crate graph.
= ["syncular-client/e2ee", "syncular-command/e2ee"]
# §5.10.5 native CRDT commands (crdtText/crdtInsertText/crdtDeleteText/
# crdtApplyUpdate). Off by default so a lean plugin build skips yrs; the
# example enables it so the demo can show collaborative text. Forwards to the
# shared router — the plugin adds no code (the commands ride `dispatch`).
= ["syncular-command/crdt-yjs"]