summaryrefslogtreecommitdiffstats
path: root/third_party/rust/sync15/Cargo.toml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /third_party/rust/sync15/Cargo.toml
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/sync15/Cargo.toml')
-rw-r--r--third_party/rust/sync15/Cargo.toml66
1 files changed, 66 insertions, 0 deletions
diff --git a/third_party/rust/sync15/Cargo.toml b/third_party/rust/sync15/Cargo.toml
new file mode 100644
index 0000000000..6ef5a2d8a8
--- /dev/null
+++ b/third_party/rust/sync15/Cargo.toml
@@ -0,0 +1,66 @@
+[package]
+name = "sync15"
+edition = "2021"
+version = "0.1.0"
+authors = ["application-services@mozilla.com"]
+license = "MPL-2.0"
+exclude = ["/android", "/ios"]
+
+[features]
+# The default feature is what mozilla-central wants (we are listed in a `[patch]` section in
+# in m-c's top-level Cargo.toml to make updating easier, but you can't specify features there)
+default = ["sync-engine"]
+
+random-guid = ["sync-guid/random"]
+
+# Some consumers of this just need our encrypted payloads and no other sync functionality.
+crypto = ["rc_crypto", "base16", "base64"]
+
+# Some crates need to implement a "sync engine", but aren't a "sync client" (ie, their
+# engine is used by a "sync client".) Engines don't interact directly with the storage servers,
+# nor do they do their own crypto.
+# See the rustdocs in `crate::engine` for more information about engines.
+sync-engine = ["random-guid"]
+
+# Some crates are a "sync client" and do full management/initialization of server storage,
+# keys, etc and sync one or more engines. This crate has an engine to manage the "clients"
+# collection, so needs the sync-engine feature.
+# See the rustdocs in `crate::client` for more information about clients.
+sync-client = ["sync-engine", "crypto", "viaduct", "url"]
+
+# Some crates just do their own engine but need to pretend they are a client,
+# eg, iOS pre-sync-manager.
+# Consider places:
+# * It always is going to need to supply a "sync-engine".
+# * When used in iOS, due to the lack of sync_manager support, it also needs to
+# supply a kind of "sync-client". It is *not* necessary to supply this for Android.
+# In a perfect world:
+# * places would also have a feature called, say, "sync-client"
+# * The code needed for iOS would be behind the "sync-client" feature.
+# * The ios megazord would enable the "sync-client" feature, but the android megazord would not.
+#
+# However, that's not yet the case. This "stand-alone" sync feature is used by crates
+# such as places, and is really a marker to help identify the crates which should be
+# upgraded to make the sync-client part truly optional.
+standalone-sync = ["sync-client"]
+
+[dependencies]
+anyhow = "1.0"
+base16 = { version = "0.2", optional = true }
+base64 = { version = "0.13", optional = true }
+error-support = { path = "../support/error" }
+ffi-support = "0.4"
+interrupt-support = { path = "../support/interrupt" }
+lazy_static = "1.4"
+log = "0.4"
+rc_crypto = { path = "../support/rc_crypto", features = ["hawk"], optional = true }
+serde = { version = "1", features = ["derive"] }
+serde_derive = "1"
+serde_json = "1"
+sync-guid = { path = "../support/guid", features = ["random"] }
+thiserror = "1.0"
+url = { version = "2.1", optional = true } # mozilla-central can't yet take 2.2 (see bug 1734538)
+viaduct = { path = "../viaduct", optional = true }
+
+[dev-dependencies]
+env_logger = { version = "0.7", default-features = false }