Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
97 lines (88 loc) · 3.75 KB
/
Copy pathCargo.toml
File metadata and controls
97 lines (88 loc) · 3.75 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
[workspace]
members = [
# --- SDK crates ---
"azure_iot_operations_connector",
"azure_iot_operations_mqtt",
"azure_iot_operations_protocol",
"azure_iot_operations_services",
# --- Sample applications ---
"sample_applications/counter/envoy",
"sample_applications/counter/counter_client",
"sample_applications/counter/counter_server",
"sample_applications/event_driven_app/input_client",
"sample_applications/event_driven_app/output_client",
"sample_applications/sample_connector_scaffolding",
]
# Bare `cargo build`/`test`/`clippy` at the workspace root operate only on the
# SDK crates, which is what we work on day to day. The sample applications
# remain full members (so they stay compile-guarded and are covered by
# `--workspace`/`--all` in CI) but are opt-in for default operations.
default-members = [
"azure_iot_operations_connector",
"azure_iot_operations_mqtt",
"azure_iot_operations_protocol",
"azure_iot_operations_services",
]
# Resolver 3 prefers dependency versions compatible with `rust-version` (the MSRV) when
# resolving, so a new dependency release that raises its own MSRV doesn't break MSRV builds.
resolver = "3"
[workspace.package]
# This is the MSRV. If this value is changed, it also must be changed in the CI for the SDK
# to ensure that tests are correctly run against it.
rust-version = "1.88"
[workspace.lints.rust]
rust_2018_idioms = { level = "deny", priority = -1 }
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
too_many_lines = "allow"
module_name_repetitions = "allow"
large_futures = "allow" # Currently, the underlying client creates large futures. Remove when fixed.
# Centralized dependency versions, inherited by member crates via
# `foo.workspace = true`. Conventions for this table:
#
# - Add a dependency here only when it is used by >= 2 workspace members.
# Single-consumer deps stay inline in that crate's Cargo.toml.
# - Keep entries version-only and as loose as is correct (a minimum, not a
# pin) — the entries become the published version requirement for every
# crate that inherits them, and `Cargo.lock` handles the exact version.
# - Do NOT put crate-specific features here. Cargo unifies features across
# the graph, so a feature listed here leaks into every consumer's published
# manifest. Declare features per-crate instead:
# `foo = { workspace = true, features = ["bar"], optional = true }`.
# - To ship a minimal default surface, set `default-features = false` on the
# workspace entry and have each crate opt into exactly the features it needs.
# Note a member CANNOT set `default-features = false` when the workspace entry
# omits it (Cargo rejects it), so the disable must live here. See `chrono`.
# - Sibling `azure_iot_operations_*` crates are intentionally NOT listed here:
# they are independently versioned published contracts, declared per-crate
# with an explicit `version` + `path`.
[workspace.dependencies]
# --- src dependencies ---
async-trait = "0.1.81"
bytes = "1.5.0"
chrono = { version = "0.4", default-features = false }
derive_builder = "0.20"
derive-getters = { version = "0.5.0", features = ["auto_copy_getters"] }
futures = "0.3.31"
iso8601-duration = "0.2"
log = "0.4.21"
parking_lot = "0.12"
regex = "1.11.0"
serde = "1.0"
serde_json = "1.0"
sha2 = { version = "0.10", default-features = false }
thiserror = "2.0.12"
tokio = "1.41" # No default features (tokio's `default = []`); each crate selects its own via `features`.
tokio-util = "0.7.11"
uuid = "1.8.0"
# --- dev dependencies ---
env_logger = "0.11.3"
test-case = "3.3.1"
tokio-test = "0.4.4"
notify = "7"
notify-debouncer-full = "0.4.0"
tempfile = "3.19.1"
temp-env = "0.3.6"