[package]
edition = "2024"
name = "cranpose-services"
version = "0.9.21"
authors = ["Dmitry Samoylenko"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Multiplatform service contracts and platform integrations for Cranpose apps"
homepage = "https://samoylenkodmitry.github.io/cranpose/"
readme = "README.md"
keywords = [
"gui",
"ui",
"compose",
"declarative",
"framework",
]
categories = ["gui"]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/samoylenkodmitry/cranpose"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = []
file-picker-native = ["dep:rfd"]
file-picker-web = [
"dep:rfd",
"dep:js-sys",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:web-sys",
]
http-native = [
"dep:reqwest",
"dep:webpki-root-certs",
]
localization = []
notifier-native = []
preferences-web = [
"dep:wasm-bindgen",
"dep:web-sys",
]
system-theme = []
system-theme-web = ["dep:web-sys"]
uri-android = ["dep:webbrowser"]
uri-native = ["dep:open"]
uri-web = ["dep:web-sys"]
web-http = [
"dep:futures-util",
"dep:js-sys",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:web-sys",
]
[lib]
name = "cranpose_services"
path = "src/lib.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[dependencies.cranpose-core]
version = "0.9.21"
[dependencies.cranpose-macros]
version = "0.9.21"
[dependencies.cranpose-ui-graphics]
version = "0.9.21"
[dependencies.directories]
version = "6.0.0"
[dependencies.log]
version = "0.4"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.sha2]
version = "0.11.0"
[dependencies.thiserror]
version = "2.0.21"
[dependencies.web-time]
version = "1.1"
[dev-dependencies.webpki-root-certs]
version = "1.0.9"
[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.open]
version = "5.4.4"
optional = true
[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android"), not(target_os = "ios")))'.dependencies.rfd]
version = "0.17.2"
features = ["xdg-portal"]
optional = true
default-features = false
[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "ios")))'.dependencies.reqwest]
version = "0.13.5"
features = [
"blocking",
"rustls",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.pollster]
version = "0.4.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.serde_json]
version = "1.0.151"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tempfile]
version = "3.27.0"
[target.'cfg(target_arch = "wasm32")'.dependencies.futures-util]
version = "0.3.34"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3.106"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.rfd]
version = "0.17.2"
optional = true
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4.79"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
"Blob",
"BlobPropertyBag",
"Document",
"Element",
"File",
"FileList",
"HtmlElement",
"Headers",
"MediaQueryList",
"ReadableStream",
"ReadableStreamDefaultReader",
"Request",
"RequestInit",
"RequestMode",
"Response",
"Storage",
"Url",
"Window",
]
optional = true
[target.'cfg(target_os = "android")'.dependencies.webbrowser]
version = "1.2.4"
optional = true
[target.'cfg(target_os = "android")'.dependencies.webpki-root-certs]
version = "1.0.9"
optional = true
[target.'cfg(target_os = "ios")'.dependencies.reqwest]
version = "0.13.5"
features = [
"blocking",
"native-tls",
]
optional = true
default-features = false
[lints.clippy]
assigning_clones = "warn"
clone_on_copy = "deny"
cloned_instead_of_copied = "warn"
dbg_macro = "deny"
elidable_lifetime_names = "warn"
explicit_iter_loop = "warn"
ignored_unit_patterns = "warn"
manual_assert = "warn"
manual_let_else = "warn"
map_unwrap_or = "warn"
needless_raw_string_hashes = "warn"
or_fun_call = "warn"
redundant_clone = "warn"
redundant_closure_for_method_calls = "warn"
redundant_locals = "deny"
semicolon_if_nothing_returned = "warn"
todo = "deny"
uninlined_format_args = "warn"
unnested_or_patterns = "warn"
[lints.rust]
linker_messages = "deny"
unsafe_code = "deny"