aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml73
-rw-r--r--components/allocator/Cargo.toml2
-rw-r--r--components/atoms/Cargo.toml4
-rw-r--r--components/background_hang_monitor/Cargo.toml14
-rw-r--r--components/bluetooth/Cargo.toml8
-rw-r--r--components/bluetooth_traits/Cargo.toml6
-rw-r--r--components/canvas/Cargo.toml30
-rw-r--r--components/canvas_traits/Cargo.toml20
-rw-r--r--components/compositing/Cargo.toml20
-rw-r--r--components/config/Cargo.toml14
-rw-r--r--components/config_plugins/Cargo.toml8
-rw-r--r--components/constellation/Cargo.toml18
-rw-r--r--components/deny_public_fields/Cargo.toml4
-rw-r--r--components/derive_common/Cargo.toml10
-rw-r--r--components/devtools/Cargo.toml18
-rw-r--r--components/devtools_traits/Cargo.toml16
-rw-r--r--components/dom_struct/Cargo.toml4
-rw-r--r--components/domobject_derive/Cargo.toml6
-rw-r--r--components/embedder_traits/Cargo.toml14
-rw-r--r--components/fallible/Cargo.toml2
-rw-r--r--components/geometry/Cargo.toml6
-rw-r--r--components/gfx/Cargo.toml30
-rw-r--r--components/gfx_traits/Cargo.toml4
-rw-r--r--components/hashglobe/Cargo.toml4
-rw-r--r--components/jstraceable_derive/Cargo.toml6
-rw-r--r--components/layout/Cargo.toml38
-rw-r--r--components/layout_2020/Cargo.toml36
-rw-r--r--components/layout_thread/Cargo.toml28
-rw-r--r--components/layout_thread_2020/Cargo.toml22
-rw-r--r--components/layout_traits/Cargo.toml4
-rw-r--r--components/malloc_size_of/Cargo.toml40
-rw-r--r--components/media/Cargo.toml12
-rw-r--r--components/metrics/Cargo.toml8
-rw-r--r--components/msg/Cargo.toml10
-rw-r--r--components/net/Cargo.toml44
-rw-r--r--components/net_traits/Cargo.toml36
-rw-r--r--components/pixels/Cargo.toml6
-rw-r--r--components/profile/Cargo.toml10
-rw-r--r--components/profile_traits/Cargo.toml10
-rw-r--r--components/rand/Cargo.toml8
-rw-r--r--components/range/Cargo.toml6
-rw-r--r--components/remutex/Cargo.toml4
-rw-r--r--components/script/Cargo.toml94
-rw-r--r--components/script_layout_interface/Cargo.toml20
-rw-r--r--components/script_traits/Cargo.toml34
-rw-r--r--components/servo/Cargo.toml18
-rw-r--r--components/servo_arc/Cargo.toml2
-rw-r--r--components/to_shmem/Cargo.toml10
-rw-r--r--components/to_shmem_derive/Cargo.toml10
-rw-r--r--components/url/Cargo.toml8
-rw-r--r--components/webdriver_server/Cargo.toml28
-rw-r--r--components/webgpu/Cargo.toml12
-rw-r--r--components/webrender_surfman/Cargo.toml6
-rw-r--r--components/webrender_traits/Cargo.toml2
-rw-r--r--ports/gstplugin/Cargo.toml16
-rw-r--r--ports/libmlservo/Cargo.toml6
-rw-r--r--ports/libsimpleservo/api/Cargo.toml14
-rw-r--r--ports/libsimpleservo/capi/Cargo.toml16
-rw-r--r--ports/libsimpleservo/jniapi/Cargo.toml6
-rw-r--r--ports/winit/Cargo.toml20
-rw-r--r--tests/unit/metrics/Cargo.toml4
-rw-r--r--tests/unit/profile/Cargo.toml2
-rw-r--r--tests/unit/script/Cargo.toml4
-rw-r--r--tests/unit/style/Cargo.toml12
64 files changed, 540 insertions, 467 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 5cc0e6a6e23..2e15ad5dd51 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,6 +10,79 @@ members = [
]
exclude = [".cargo"]
+[workspace.dependencies]
+accountable-refcell = "0.2.0"
+app_units = "0.7"
+atomic_refcell = "0.1.6"
+arrayvec = "0.7"
+backtrace = "0.3"
+base64 = "0.10.1"
+bitflags = "1.0"
+byteorder = "1.0"
+encoding_rs = "0.8"
+euclid = "0.22"
+cookie = "0.12"
+content-security-policy = { version = "0.5", features = ["serde"]}
+crossbeam-channel = "0.4"
+cssparser = "0.29"
+darling = { version = "0.10", default-features = false }
+data-url = "0.1.0"
+env_logger = "0.8"
+fnv = "1.0"
+fxhash = "0.2"
+getopts = "0.2.11"
+gleam = "0.12"
+headers = "0.3"
+html5ever = "0.26"
+http = "0.2"
+hyper = "0.14"
+hyper_serde = "0.13"
+image = "0.24"
+indexmap = { version = "1.0.2", features = ["std"] }
+ipc-channel = "0.14"
+itertools = "0.8"
+keyboard-types = "0.6"
+lazy_static = "1.4"
+libc = "0.2"
+log = "0.4"
+malloc_size_of_derive = "0.1"
+mime = "0.3.13"
+mime_guess = "2.0.3"
+mitochondria = "1.1.2"
+num-traits = "0.2"
+parking_lot = "0.11"
+percent-encoding = "2.0"
+proc-macro2 = "1"
+quote = "1"
+rand = "0.7"
+rayon = "1"
+regex = "1.1"
+serde = "1.0.60"
+serde_bytes = "0.11"
+serde_json = "1.0"
+syn = { version = "1", default-features = false, features = ["clone-impls", "derive", "parsing"] }
+synstructure = "0.12"
+smallbitvec = "2.3.0"
+smallvec = "1.9"
+sparkle = "0.1.25"
+string_cache = "0.8"
+string_cache_codegen = "0.5"
+surfman = "0.6"
+surfman-chains = "0.7"
+surfman-chains-api = "0.2"
+thin-slice = "0.1.0"
+time = "0.1.41"
+tokio = "1"
+tokio2 = "0.2"
+unicode-bidi = "0.3.4"
+unicode-script = "0.5"
+url = "2.0"
+uuid = { version = "0.8", features = ["v4"] }
+webdriver = "0.44"
+winapi = "0.3"
+xi-unicode = "0.1.0"
+xml5ever = "0.17"
+
[profile.release]
opt-level = 3
# Uncomment to profile on Linux:
diff --git a/components/allocator/Cargo.toml b/components/allocator/Cargo.toml
index 6ced42a4391..eca566d3f08 100644
--- a/components/allocator/Cargo.toml
+++ b/components/allocator/Cargo.toml
@@ -13,4 +13,4 @@ path = "lib.rs"
jemalloc-sys = { version = "0.3.2" }
[target.'cfg(windows)'.dependencies]
-winapi = { version = "0.3", features = ["heapapi"] }
+winapi = { workspace = true, features = ["heapapi"] }
diff --git a/components/atoms/Cargo.toml b/components/atoms/Cargo.toml
index aa232e86e5a..d48dbf0a350 100644
--- a/components/atoms/Cargo.toml
+++ b/components/atoms/Cargo.toml
@@ -11,7 +11,7 @@ build = "build.rs"
path = "lib.rs"
[dependencies]
-string_cache = "0.8"
+string_cache = { workspace = true }
[build-dependencies]
-string_cache_codegen = "0.5"
+string_cache_codegen = { workspace = true }
diff --git a/components/background_hang_monitor/Cargo.toml b/components/background_hang_monitor/Cargo.toml
index 419465b5c8f..9e54d6090f6 100644
--- a/components/background_hang_monitor/Cargo.toml
+++ b/components/background_hang_monitor/Cargo.toml
@@ -13,16 +13,16 @@ test = false
doctest = false
[dependencies]
-backtrace = "0.3"
-crossbeam-channel = "0.4"
-ipc-channel = "0.14"
-libc = "0.2"
-log = "0.4"
+backtrace = { workspace = true }
+crossbeam-channel = { workspace = true }
+ipc-channel = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
msg = { path = "../msg" }
-serde_json = "1.0"
+serde_json = { workspace = true }
[dev-dependencies]
-lazy_static = "1.0"
+lazy_static = { workspace = true }
[target.'cfg(target_os = "macos")'.dependencies]
mach = "0.3"
diff --git a/components/bluetooth/Cargo.toml b/components/bluetooth/Cargo.toml
index 655cd52624a..93ed7d6e151 100644
--- a/components/bluetooth/Cargo.toml
+++ b/components/bluetooth/Cargo.toml
@@ -11,15 +11,15 @@ name = "bluetooth"
path = "lib.rs"
[dependencies]
-bitflags = "1.0"
+bitflags = { workspace = true }
bluetooth_traits = { path = "../bluetooth_traits" }
device = { git = "https://github.com/servo/devices", features = ["bluetooth-test"], rev = "cb28c4725ffbfece99dab842d17d3e8c50774778" }
embedder_traits = { path = "../embedder_traits" }
-ipc-channel = "0.14"
-log = "0.4"
+ipc-channel = { workspace = true }
+log = { workspace = true }
servo_config = { path = "../config" }
servo_rand = { path = "../rand" }
-uuid = { version = "0.8", features = ["v4"] }
+uuid = { workspace = true }
[features]
native-bluetooth = ["device/bluetooth"]
diff --git a/components/bluetooth_traits/Cargo.toml b/components/bluetooth_traits/Cargo.toml
index d1750c2856c..fc1830585de 100644
--- a/components/bluetooth_traits/Cargo.toml
+++ b/components/bluetooth_traits/Cargo.toml
@@ -12,6 +12,6 @@ path = "lib.rs"
[dependencies]
embedder_traits = { path = "../embedder_traits" }
-ipc-channel = "0.14"
-regex = "1.1"
-serde = "1.0"
+ipc-channel = { workspace = true }
+regex = { workspace = true }
+serde = { workspace = true }
diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml
index 7704fda6004..c7e7c7c8abe 100644
--- a/components/canvas/Cargo.toml
+++ b/components/canvas/Cargo.toml
@@ -16,34 +16,34 @@ webgl_backtrace = ["canvas_traits/webgl_backtrace"]
xr-profile = ["webxr-api/profile", "time"]
[dependencies]
-bitflags = "1.0"
-byteorder = "1"
+bitflags = { workspace = true }
+byteorder = { workspace = true }
canvas_traits = { path = "../canvas_traits" }
-crossbeam-channel = "0.4"
-cssparser = "0.29"
-euclid = "0.22"
+crossbeam-channel = { workspace = true }
+cssparser = { workspace = true }
+euclid = { workspace = true }
font-kit = "0.11"
-fnv = "1.0"
+fnv = { workspace = true }
gfx = { path = "../gfx" }
-gleam = "0.12"
+gleam = { workspace = true }
half = "1"
-ipc-channel = "0.14"
-log = "0.4"
+ipc-channel = { workspace = true }
+log = { workspace = true }
lyon_geom = "1.0.4"
-num-traits = "0.2"
+num-traits = { workspace = true }
pathfinder_geometry = "0.5"
pixels = { path = "../pixels" }
raqote = "0.8.2"
servo_arc = { path = "../servo_arc" }
servo_config = { path = "../config" }
-sparkle = "0.1.25"
+sparkle = { workspace = true }
style = { path = "../style" }
style_traits = { path = "../style_traits" }
# NOTE: the sm-angle feature only enables angle on windows, not other platforms!
-surfman = { version = "0.6", features = ["sm-angle","sm-angle-default"] }
-surfman-chains = "0.7"
-surfman-chains-api = "0.2"
-time = { version = "0.1.41", optional = true }
+surfman = { workspace = true, features = ["sm-angle","sm-angle-default"] }
+surfman-chains = { workspace = true }
+surfman-chains-api = { workspace = true }
+time = { workspace = true, optional = true }
webrender = { git = "https://github.com/servo/webrender" }
webrender_api = { git = "https://github.com/servo/webrender" }
webrender_surfman = { path = "../webrender_surfman" }
diff --git a/components/canvas_traits/Cargo.toml b/components/canvas_traits/Cargo.toml
index 8eb6aa9ee66..4db44f09eb1 100644
--- a/components/canvas_traits/Cargo.toml
+++ b/components/canvas_traits/Cargo.toml
@@ -15,19 +15,19 @@ webgl_backtrace = []
xr-profile = ["webxr-api/profile", "time"]
[dependencies]
-crossbeam-channel = "0.4"
-cssparser = "0.29"
-euclid = "0.22"
-ipc-channel = "0.14"
-lazy_static = "1"
+crossbeam-channel = { workspace = true }
+cssparser = { workspace = true }
+euclid = { workspace = true }
+ipc-channel = { workspace = true }
+lazy_static = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
+malloc_size_of_derive = { workspace = true }
pixels = { path = "../pixels" }
-serde = "1.0"
-serde_bytes = "0.11"
+serde = { workspace = true }
+serde_bytes = { workspace = true }
servo_config = { path = "../config" }
-sparkle = "0.1"
+sparkle = { workspace = true }
style = { path = "../style" }
-time = { version = "0.1.41", optional = true }
+time = { workspace = true, optional = true }
webrender_api = { git = "https://github.com/servo/webrender" }
webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml
index a89643b07f9..d67623f9ffc 100644
--- a/components/compositing/Cargo.toml
+++ b/components/compositing/Cargo.toml
@@ -17,19 +17,19 @@ gl = ["gleam", "pixels"]
[dependencies]
canvas = { path = "../canvas" }
-crossbeam-channel = "0.4"
+crossbeam-channel = { workspace = true }
embedder_traits = { path = "../embedder_traits" }
-euclid = "0.22"
+euclid = { workspace = true }
gfx_traits = { path = "../gfx_traits" }
-gleam = { version = "0.12", optional = true }
-image = "0.24"
-ipc-channel = "0.14"
-keyboard-types = "0.6"
-libc = "0.2"
-log = "0.4"
+gleam = { workspace = true, optional = true }
+image = { workspace = true }
+ipc-channel = { workspace = true }
+keyboard-types = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
-num-traits = "0.2"
+num-traits = { workspace = true }
pixels = { path = "../pixels", optional = true }
profile_traits = { path = "../profile_traits" }
script_traits = { path = "../script_traits" }
@@ -37,7 +37,7 @@ servo-media = { git = "https://github.com/servo/media" }
servo_geometry = { path = "../geometry" }
servo_url = { path = "../url" }
style_traits = { path = "../style_traits" }
-time = "0.1.41"
+time = { workspace = true }
webrender = { git = "https://github.com/servo/webrender", features = ["capture"] }
webrender_api = { git = "https://github.com/servo/webrender" }
webrender_surfman = { path = "../webrender_surfman" }
diff --git a/components/config/Cargo.toml b/components/config/Cargo.toml
index 34660ea8338..f909dc08d13 100644
--- a/components/config/Cargo.toml
+++ b/components/config/Cargo.toml
@@ -15,17 +15,17 @@ path = "lib.rs"
[dependencies]
embedder_traits = { path = "../embedder_traits" }
-euclid = "0.22"
-getopts = "0.2.11"
-lazy_static = "1"
-log = "0.4"
+euclid = { workspace = true }
+getopts = { workspace = true }
+lazy_static = { workspace = true }
+log = { workspace = true }
num_cpus = "1.1.0"
-serde = { version = "1.0", features = ["derive"] }
-serde_json = "1.0"
+serde = { workspace = true, features = ["derive"] }
+serde_json = { workspace = true }
servo_config_plugins = { path = "../config_plugins" }
servo_geometry = { path = "../geometry" }
servo_url = { path = "../url" }
-url = "2.0"
+url = { workspace = true }
[dev-dependencies]
std_test_override = { path = "../std_test_override" }
diff --git a/components/config_plugins/Cargo.toml b/components/config_plugins/Cargo.toml
index 1f648e57f80..79dd5614eef 100644
--- a/components/config_plugins/Cargo.toml
+++ b/components/config_plugins/Cargo.toml
@@ -12,7 +12,7 @@ proc-macro = true
path = "lib.rs"
[dependencies]
-itertools = "0.8"
-proc-macro2 = "1"
-quote = "1"
-syn = { version = "1", default-features = false, features = ["clone-impls", "parsing"] }
+itertools = { workspace = true }
+proc-macro2 = { workspace = true }
+quote = { workspace = true }
+syn = { workspace = true }
diff --git a/components/constellation/Cargo.toml b/components/constellation/Cargo.toml
index bf9e4f579f0..dac014e178d 100644
--- a/components/constellation/Cargo.toml
+++ b/components/constellation/Cargo.toml
@@ -12,22 +12,22 @@ path = "lib.rs"
[dependencies]
background_hang_monitor = { path = "../background_hang_monitor" }
-backtrace = "0.3"
+backtrace = { workspace = true }
bluetooth_traits = { path = "../bluetooth_traits" }
canvas_traits = { path = "../canvas_traits" }
compositing = { path = "../compositing" }
-crossbeam-channel = "0.4"
+crossbeam-channel = { workspace = true }
devtools_traits = { path = "../devtools_traits" }
embedder_traits = { path = "../embedder_traits" }
-euclid = "0.22"
+euclid = { workspace = true }
gfx = { path = "../gfx" }
gfx_traits = { path = "../gfx_traits" }
-http = "0.2"
-headers = "0.3"
-ipc-channel = "0.14"
-keyboard-types = "0.6"
+http = { workspace = true }
+headers = { workspace = true }
+ipc-channel = { workspace = true }
+keyboard-types = { workspace = true }
layout_traits = { path = "../layout_traits" }
-log = "0.4"
+log = { workspace = true }
media = { path = "../media" }
metrics = { path = "../metrics" }
msg = { path = "../msg" }
@@ -35,7 +35,7 @@ net = { path = "../net" }
net_traits = { path = "../net_traits" }
profile_traits = { path = "../profile_traits" }
script_traits = { path = "../script_traits" }
-serde = "1.0"
+serde = { workspace = true }
servo_config = { path = "../config" }
servo_rand = {path = "../rand" }
servo_remutex = { path = "../remutex" }
diff --git a/components/deny_public_fields/Cargo.toml b/components/deny_public_fields/Cargo.toml
index 36141af57b2..96365d752de 100644
--- a/components/deny_public_fields/Cargo.toml
+++ b/components/deny_public_fields/Cargo.toml
@@ -11,5 +11,5 @@ path = "lib.rs"
proc-macro = true
[dependencies]
-syn = { version = "1", default-features = false, features = ["derive", "parsing"] }
-synstructure = "0.12"
+syn = { workspace = true }
+synstructure = { workspace = true }
diff --git a/components/derive_common/Cargo.toml b/components/derive_common/Cargo.toml
index d251949499f..c3fe0456e6a 100644
--- a/components/derive_common/Cargo.toml
+++ b/components/derive_common/Cargo.toml
@@ -10,8 +10,8 @@ publish = false
path = "lib.rs"
[dependencies]
-darling = { version = "0.10", default-features = false }
-proc-macro2 = "1"
-quote = "1"
-syn = { version = "1", default-features = false, features = ["clone-impls", "parsing"] }
-synstructure = "0.12"
+darling = { workspace = true }
+proc-macro2 = { workspace = true }
+quote = { workspace = true }
+syn = { workspace = true }
+synstructure = { workspace = true }
diff --git a/components/devtools/Cargo.toml b/components/devtools/Cargo.toml
index ef86fe41686..d461147ec2f 100644
--- a/components/devtools/Cargo.toml
+++ b/components/devtools/Cargo.toml
@@ -11,18 +11,18 @@ name = "devtools"
path = "lib.rs"
[dependencies]
-crossbeam-channel = "0.4"
+crossbeam-channel = { workspace = true }
devtools_traits = { path = "../devtools_traits" }
embedder_traits = { path = "../embedder_traits" }
-headers = "0.3"
-http = "0.2"
-ipc-channel = "0.14"
-log = "0.4"
+headers = { workspace = true }
+http = { workspace = true }
+ipc-channel = { workspace = true }
+log = { workspace = true }
msg = { path = "../msg" }
-serde = "1.0"
-serde_json = "1.0"
+serde = { workspace = true }
+serde_json = { workspace = true }
servo_config = { path = "../config" }
servo_rand = { path = "../rand" }
servo_url = { path = "../url" }
-time = "0.1"
-uuid = { version = "0.8", features = ["v4"] }
+time = { workspace = true }
+uuid = { workspace = true }
diff --git a/components/devtools_traits/Cargo.toml b/components/devtools_traits/Cargo.toml
index d6c13c581ad..74bd6ddc24b 100644
--- a/components/devtools_traits/Cargo.toml
+++ b/components/devtools_traits/Cargo.toml
@@ -11,14 +11,14 @@ name = "devtools_traits"
path = "lib.rs"
[dependencies]
-bitflags = "1.0"
-headers = "0.3"
-http = "0.2"
-ipc-channel = "0.14"
+bitflags = { workspace = true }
+headers = { workspace = true }
+http = { workspace = true }
+ipc-channel = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
+malloc_size_of_derive = { workspace = true }
msg = { path = "../msg" }
-serde = "1.0"
+serde = { workspace = true }
servo_url = { path = "../url" }
-time = "0.1"
-uuid = { version = "0.8", features = ["v4", "serde"] }
+time = { workspace = true }
+uuid = { workspace = true, features = ["serde"] }
diff --git a/components/dom_struct/Cargo.toml b/components/dom_struct/Cargo.toml
index 4fdf253d56c..38ba2d74d05 100644
--- a/components/dom_struct/Cargo.toml
+++ b/components/dom_struct/Cargo.toml
@@ -7,8 +7,8 @@ publish = false
version = "0.0.1"
[dependencies]
-quote = "1"
-syn = { version = "1", default-features = false, features = ["clone-impls", "parsing"] }
+quote = { workspace = true }
+syn = { workspace = true }
[lib]
path = "lib.rs"
diff --git a/components/domobject_derive/Cargo.toml b/components/domobject_derive/Cargo.toml
index 514d07899f0..778bb39a17b 100644
--- a/components/domobject_derive/Cargo.toml
+++ b/components/domobject_derive/Cargo.toml
@@ -11,6 +11,6 @@ path = "lib.rs"
proc-macro = true
[dependencies]
-proc-macro2 = "1"
-quote = "1"
-syn = { version = "1", default-features = false, features = ["clone-impls", "derive", "parsing"] }
+proc-macro2 = { workspace = true }
+quote = { workspace = true }
+syn = { workspace = true }
diff --git a/components/embedder_traits/Cargo.toml b/components/embedder_traits/Cargo.toml
index fc9f20d66b3..430a57090f5 100644
--- a/components/embedder_traits/Cargo.toml
+++ b/components/embedder_traits/Cargo.toml
@@ -11,15 +11,15 @@ name = "embedder_traits"
path = "lib.rs"
[dependencies]
-crossbeam-channel = "0.4"
-ipc-channel = "0.14"
-keyboard-types = "0.6"
-lazy_static = "1"
-log = "0.4"
+crossbeam-channel = { workspace = true }
+ipc-channel = { workspace = true }
+keyboard-types = { workspace = true }
+lazy_static = { workspace = true }
+log = { workspace = true }
msg = { path = "../msg" }
num-derive = "0.3"
-num-traits = "0.2"
-serde = "1.0"
+num-traits = { workspace = true }
+serde = { workspace = true }
servo_url = { path = "../url" }
webrender_api = { git = "https://github.com/servo/webrender" }
webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
diff --git a/components/fallible/Cargo.toml b/components/fallible/Cargo.toml
index 59d5a7519fe..3d4f9f5549c 100644
--- a/components/fallible/Cargo.toml
+++ b/components/fallible/Cargo.toml
@@ -12,7 +12,7 @@ path = "lib.rs"
[dependencies]
hashglobe = { path = "../hashglobe" }
-smallvec = "1.0"
+smallvec = { workspace = true }
# This crate effectively does nothing except if the `known_system_malloc`
# feature is specified.
diff --git a/components/geometry/Cargo.toml b/components/geometry/Cargo.toml
index fe9195d96b5..d2b7a64bd84 100644
--- a/components/geometry/Cargo.toml
+++ b/components/geometry/Cargo.toml
@@ -11,8 +11,8 @@ name = "servo_geometry"
path = "lib.rs"
[dependencies]
-app_units = "0.7"
-euclid = "0.22"
+app_units = { workspace = true }
+euclid = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
+malloc_size_of_derive = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
diff --git a/components/gfx/Cargo.toml b/components/gfx/Cargo.toml
index dfb1888f37f..294ec44d16a 100644
--- a/components/gfx/Cargo.toml
+++ b/components/gfx/Cargo.toml
@@ -14,35 +14,35 @@ test = false
doctest = false
[dependencies]
-app_units = "0.7"
-bitflags = "1.0"
-euclid = "0.22"
-fnv = "1.0"
+app_units = { workspace = true }
+bitflags = { workspace = true }
+euclid = { workspace = true }
+fnv = { workspace = true }
fontsan = { git = "https://github.com/servo/fontsan" }
gfx_traits = { path = "../gfx_traits" }
harfbuzz-sys = "0.5"
-ipc-channel = "0.14"
-lazy_static = "1"
-libc = "0.2"
-log = "0.4"
+ipc-channel = { workspace = true }
+lazy_static = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
net_traits = { path = "../net_traits" }
range = { path = "../range" }
-serde = "1.0"
+serde = { workspace = true }
servo_arc = { path = "../servo_arc" }
servo_atoms = { path = "../atoms" }
servo_url = { path = "../url" }
-smallvec = { version = "1.9", features = ["union"] }
+smallvec = { workspace = true, features = ["union"] }
style = { path = "../style", features = ["servo"] }
-time = "0.1.41"
+time = { workspace = true }
ucd = "0.1.1"
-unicode-bidi = { version = "0.3", features = ["with_serde"] }
-unicode-script = "0.5"
+unicode-bidi = { workspace = true, features = ["with_serde"] }
+unicode-script = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
-xi-unicode = "0.1.0"
+xi-unicode = { workspace = true }
[target.'cfg(target_os = "macos")'.dependencies]
-byteorder = "1.0"
+byteorder = { workspace = true }
core-foundation = "0.9"
core-graphics = "0.22"
core-text = "19.0"
diff --git a/components/gfx_traits/Cargo.toml b/components/gfx_traits/Cargo.toml
index f4b7ef68931..142a644e394 100644
--- a/components/gfx_traits/Cargo.toml
+++ b/components/gfx_traits/Cargo.toml
@@ -12,7 +12,7 @@ path = "lib.rs"
[dependencies]
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
+malloc_size_of_derive = { workspace = true }
range = { path = "../range" }
-serde = "1.0"
+serde = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
diff --git a/components/hashglobe/Cargo.toml b/components/hashglobe/Cargo.toml
index 895db6f3fc8..e453136c43f 100644
--- a/components/hashglobe/Cargo.toml
+++ b/components/hashglobe/Cargo.toml
@@ -10,7 +10,7 @@ readme = "README.md"
edition = "2018"
[dependencies]
-libc = "0.2"
+libc = { workspace = true }
[dev-dependencies]
-rand = "0.7"
+rand = { workspace = true }
diff --git a/components/jstraceable_derive/Cargo.toml b/components/jstraceable_derive/Cargo.toml
index 452d1833a3b..aebfffac062 100644
--- a/components/jstraceable_derive/Cargo.toml
+++ b/components/jstraceable_derive/Cargo.toml
@@ -11,6 +11,6 @@ path = "lib.rs"
proc-macro = true
[dependencies]
-proc-macro2 = "1"
-syn = { version = "1", default-features = false, features = ["clone-impls", "derive", "parsing"] }
-synstructure = "0.12"
+proc-macro2 = { workspace = true }
+syn = { workspace = true }
+synstructure = { workspace = true }
diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml
index 82956ad5eb7..9e5d56a49d9 100644
--- a/components/layout/Cargo.toml
+++ b/components/layout/Cargo.toml
@@ -13,44 +13,44 @@ test = false
doctest = false
[dependencies]
-app_units = "0.7"
-atomic_refcell = "0.1"
-bitflags = "1.0"
+app_units = { workspace = true }
+atomic_refcell = { workspace = true }
+bitflags = { workspace = true }
canvas_traits = { path = "../canvas_traits" }
embedder_traits = { path = "../embedder_traits" }
-euclid = "0.22"
-fnv = "1.0"
+euclid = { workspace = true }
+fnv = { workspace = true }
gfx = { path = "../gfx" }
gfx_traits = { path = "../gfx_traits" }
-html5ever = "0.26"
-ipc-channel = "0.14"
-lazy_static = "1"
-libc = "0.2"
-log = "0.4"
+html5ever = { workspace = true }
+ipc-channel = { workspace = true }
+lazy_static = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
-num-traits = "0.2"
-parking_lot = "0.11"
+num-traits = { workspace = true }
+parking_lot = { workspace = true }
profile_traits = { path = "../profile_traits" }
range = { path = "../range" }
-rayon = "1"
+rayon = { workspace = true }
script_layout_interface = { path = "../script_layout_interface" }
script_traits = { path = "../script_traits" }
-serde = "1.0"
-serde_json = "1.0"
+serde = { workspace = true }
+serde_json = { workspace = true }
servo_arc = { path = "../servo_arc" }
servo_atoms = { path = "../atoms" }
servo_config = { path = "../config" }
servo_geometry = { path = "../geometry" }
servo_url = { path = "../url" }
-smallvec = { version = "1.9", features = ["union"] }
+smallvec = { workspace = true, features = ["union"] }
style = { path = "../style", features = ["servo", "servo-layout-2013"] }
style_traits = { path = "../style_traits" }
-unicode-bidi = { version = "0.3", features = ["with_serde"] }
-unicode-script = "0.5"
+unicode-bidi = { workspace = true, features = ["with_serde"] }
+unicode-script = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
-xi-unicode = "0.1.0"
+xi-unicode = { workspace = true }
[dev-dependencies]
size_of_test = { path = "../size_of_test" }
diff --git a/components/layout_2020/Cargo.toml b/components/layout_2020/Cargo.toml
index 22c6d9a5494..701eebe1d7e 100644
--- a/components/layout_2020/Cargo.toml
+++ b/components/layout_2020/Cargo.toml
@@ -13,39 +13,39 @@ test = false
doctest = false
[dependencies]
-app_units = "0.7"
-atomic_refcell = "0.1.6"
+app_units = { workspace = true }
+atomic_refcell = { workspace = true }
canvas_traits = { path = "../canvas_traits" }
-bitflags = "1.0"
-cssparser = "0.29"
+bitflags = { workspace = true }
+cssparser = { workspace = true }
embedder_traits = { path = "../embedder_traits" }
-euclid = "0.22"
-fnv = "1.0"
-fxhash = "0.2"
+euclid = { workspace = true }
+fnv = { workspace = true }
+fxhash = { workspace = true }
gfx = { path = "../gfx" }
gfx_traits = { path = "../gfx_traits" }
-html5ever = "0.26"
-ipc-channel = "0.14"
-libc = "0.2"
-log = "0.4"
-mitochondria = "1.1.2"
+html5ever = { workspace = true }
+ipc-channel = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
+mitochondria = { workspace = true }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
-parking_lot = "0.11"
+parking_lot = { workspace = true }
range = { path = "../range" }
-rayon = "1"
+rayon = { workspace = true }
rayon_croissant = "0.2.0"
script_layout_interface = { path = "../script_layout_interface" }
script_traits = { path = "../script_traits" }
-serde = "1.0"
-serde_json = "1.0"
+serde = { workspace = true }
+serde_json = { workspace = true }
servo_arc = { path = "../servo_arc" }
servo_url = { path = "../url" }
style = { path = "../style", features = ["servo", "servo-layout-2020"] }
style_traits = { path = "../style_traits" }
-unicode-script = "0.5"
+unicode-script = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
[dev-dependencies]
-lazy_static = "1"
+lazy_static = { workspace = true }
quickcheck = "1"
diff --git a/components/layout_thread/Cargo.toml b/components/layout_thread/Cargo.toml
index 238029cf5ad..3e47a9ebe7d 100644
--- a/components/layout_thread/Cargo.toml
+++ b/components/layout_thread/Cargo.toml
@@ -11,23 +11,23 @@ name = "layout_thread"
path = "lib.rs"
[dependencies]
-app_units = "0.7"
-atomic_refcell = "0.1"
-crossbeam-channel = "0.4"
+app_units = { workspace = true }
+atomic_refcell = { workspace = true }
+crossbeam-channel = { workspace = true }
embedder_traits = { path = "../embedder_traits" }
-euclid = "0.22"
-fnv = "1.0"
-fxhash = "0.2"
+euclid = { workspace = true }
+fnv = { workspace = true }
+fxhash = { workspace = true }
gfx = { path = "../gfx" }
gfx_traits = { path = "../gfx_traits" }
histogram = "0.6.8"
-html5ever = "0.26"
-ipc-channel = "0.14"
+html5ever = { workspace = true }
+ipc-channel = { workspace = true }
layout = { path = "../layout", package = "layout_2013" }
layout_traits = { path = "../layout_traits" }
-lazy_static = "1"
-libc = "0.2"
-log = "0.4"
+lazy_static = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
metrics = { path = "../metrics" }
msg = { path = "../msg" }
@@ -35,12 +35,12 @@ net_traits = { path = "../net_traits" }
parking_lot = { version = "0.11" }
profile_traits = { path = "../profile_traits" }
range = { path = "../range" }
-rayon = "1"
+rayon = { workspace = true }
script = { path = "../script" }
script_layout_interface = { path = "../script_layout_interface" }
script_traits = { path = "../script_traits" }
selectors = { path = "../selectors", features = ["shmem"] }
-serde_json = "1.0"
+serde_json = { workspace = true }
servo_allocator = { path = "../allocator" }
servo_arc = { path = "../servo_arc" }
servo_atoms = { path = "../atoms" }
@@ -48,5 +48,5 @@ servo_config = { path = "../config" }
servo_url = { path = "../url" }
style = { path = "../style" }
style_traits = { path = "../style_traits" }
-time = "0.1.41"
+time = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
diff --git a/components/layout_thread_2020/Cargo.toml b/components/layout_thread_2020/Cargo.toml
index c8fc87aceb6..72a7c0f7230 100644
--- a/components/layout_thread_2020/Cargo.toml
+++ b/components/layout_thread_2020/Cargo.toml
@@ -11,22 +11,22 @@ name = "layout_thread"
path = "lib.rs"
[dependencies]
-app_units = "0.7"
-atomic_refcell = "0.1"
-crossbeam-channel = "0.4"
+app_units = { workspace = true }
+atomic_refcell = { workspace = true }
+crossbeam-channel = { workspace = true }
embedder_traits = { path = "../embedder_traits" }
-euclid = "0.22"
-fnv = "1.0"
-fxhash = "0.2"
+euclid = { workspace = true }
+fnv = { workspace = true }
+fxhash = { workspace = true }
gfx = { path = "../gfx" }
gfx_traits = { path = "../gfx_traits" }
-html5ever = "0.26"
-ipc-channel = "0.14"
+html5ever = { workspace = true }
+ipc-channel = { workspace = true }
layout = { path = "../layout_2020", package = "layout_2020" }
layout_traits = { path = "../layout_traits" }
-lazy_static = "1"
-libc = "0.2"
-log = "0.4"
+lazy_static = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
metrics = { path = "../metrics" }
msg = { path = "../msg" }
diff --git a/components/layout_traits/Cargo.toml b/components/layout_traits/Cargo.toml
index ac950a34b2a..2fe80f7cbbf 100644
--- a/components/layout_traits/Cargo.toml
+++ b/components/layout_traits/Cargo.toml
@@ -11,9 +11,9 @@ name = "layout_traits"
path = "lib.rs"
[dependencies]
-crossbeam-channel = "0.4"
+crossbeam-channel = { workspace = true }
gfx = { path = "../gfx" }
-ipc-channel = "0.14"
+ipc-channel = { workspace = true }
metrics = { path = "../metrics" }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
diff --git a/components/malloc_size_of/Cargo.toml b/components/malloc_size_of/Cargo.toml
index 10d989d75ec..86f475609fa 100644
--- a/components/malloc_size_of/Cargo.toml
+++ b/components/malloc_size_of/Cargo.toml
@@ -28,28 +28,28 @@ servo = [
]
[dependencies]
-accountable-refcell = { version = "0.2.0", optional = true }
-app_units = "0.7"
-content-security-policy = { version = "0.5", features = ["serde"], optional = true }
-crossbeam-channel = { version = "0.4", optional = true }
-cssparser = "0.29"
-euclid = "0.22"
+accountable-refcell = { workspace = true, optional = true }
+app_units = { workspace = true }
+content-security-policy = { workspace = true, optional = true }
+crossbeam-channel = { workspace = true, optional = true }
+cssparser = { workspace = true }
+euclid = { workspace = true }
hashglobe = { path = "../hashglobe" }
-http = { version = "0.2", optional = true }
-hyper_serde = { version = "0.13", optional = true }
-keyboard-types = { version = "0.6", optional = true }
+http = { workspace = true, optional = true }
+hyper_serde = { workspace = true, optional = true }
+keyboard-types = { workspace = true, optional = true }
selectors = { path = "../selectors", features = ["shmem"] }
-serde = { version = "1.0.27", optional = true }
-serde_bytes = { version = "0.11", optional = true }
+serde = { workspace = true, optional = true }
+serde_bytes = { workspace = true, optional = true }
servo_arc = { path = "../servo_arc" }
-smallbitvec = "2.3.0"
-smallvec = "1.0"
-string_cache = { version = "0.8", optional = true }
-thin-slice = "0.1.0"
-time = { version = "0.1.41", optional = true }
-tokio = "1"
-url = { version = "2.0", optional = true }
-uuid = { version = "0.8", features = ["v4"], optional = true }
+smallbitvec = { workspace = true }
+smallvec = { workspace = true }
+string_cache = { workspace = true, optional = true }
+thin-slice = { workspace = true }
+time = { workspace = true, optional = true }
+tokio = { workspace = true }
+url = { workspace = true, optional = true }
+uuid = { workspace = true, optional = true }
void = "1.0.2"
webrender_api = { git = "https://github.com/servo/webrender", optional = true }
-xml5ever = { version = "0.17", optional = true }
+xml5ever = { workspace = true, optional = true }
diff --git a/components/media/Cargo.toml b/components/media/Cargo.toml
index a76b3ee754c..9b600270bf6 100644
--- a/components/media/Cargo.toml
+++ b/components/media/Cargo.toml
@@ -11,12 +11,12 @@ name = "media"
path = "lib.rs"
[dependencies]
-euclid = "0.22"
-fnv = "1.0"
-ipc-channel = "0.14"
-lazy_static = "1"
-log = "0.4"
-serde = "1.0"
+euclid = { workspace = true }
+fnv = { workspace = true }
+ipc-channel = { workspace = true }
+lazy_static = { workspace = true }
+log = { workspace = true }
+serde = { workspace = true }
servo-media = { git = "https://github.com/servo/media" }
servo_config = { path = "../config" }
webrender_api = { git = "https://github.com/servo/webrender" }
diff --git a/components/metrics/Cargo.toml b/components/metrics/Cargo.toml
index 73fff7b8458..88eeaf0355e 100644
--- a/components/metrics/Cargo.toml
+++ b/components/metrics/Cargo.toml
@@ -12,13 +12,13 @@ path = "lib.rs"
[dependencies]
gfx_traits = { path = "../gfx_traits" }
-ipc-channel = "0.14"
-log = "0.4"
+ipc-channel = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
+malloc_size_of_derive = { workspace = true }
msg = { path = "../msg" }
profile_traits = { path = "../profile_traits" }
script_traits = { path = "../script_traits" }
servo_config = { path = "../config" }
servo_url = { path = "../url" }
-time = "0.1"
+time = { workspace = true }
diff --git a/components/msg/Cargo.toml b/components/msg/Cargo.toml
index a470bb00c2b..9f076c63bf1 100644
--- a/components/msg/Cargo.toml
+++ b/components/msg/Cargo.toml
@@ -13,12 +13,12 @@ test = false
doctest = false
[dependencies]
-ipc-channel = "0.14"
-lazy_static = "1"
+ipc-channel = { workspace = true }
+lazy_static = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
-parking_lot = "0.11"
-serde = "1.0.60"
+malloc_size_of_derive = { workspace = true }
+parking_lot = { workspace = true }
+serde = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
[dev-dependencies]
diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml
index 81ed3de24c7..5e9481fa599 100644
--- a/components/net/Cargo.toml
+++ b/components/net/Cargo.toml
@@ -17,55 +17,55 @@ doctest = false
[dependencies]
async-recursion = "0.3.2"
async-tungstenite = { version = "0.9", features = ["tokio-openssl"] }
-base64 = "0.10.1"
+base64 = { workspace = true }
brotli = "3"
bytes = "1"
-content-security-policy = { version = "0.5", features = ["serde"] }
+content-security-policy = { workspace = true }
cookie_rs = { package = "cookie", version = "0.12" }
-crossbeam-channel = "0.4"
-data-url = "0.1.0"
+crossbeam-channel = { workspace = true }
+data-url = { workspace = true }
devtools_traits = { path = "../devtools_traits" }
embedder_traits = { path = "../embedder_traits" }
flate2 = "1"
futures = { version = "0.3", package = "futures" }
futures-util = { version = "0.3" }
generic-array = "0.14"
-headers = "0.3"
-http = "0.2"
-hyper = { version = "0.14", features = ["client", "http1", "http2", "tcp", "stream"] }
+headers = { workspace = true }
+http = { workspace = true }
+hyper = { workspace = true, features = ["client", "http1", "http2", "tcp", "stream"] }
hyper-openssl = "0.9.1"
-hyper_serde = "0.13"
+hyper_serde = { workspace = true }
immeta = "0.4"
-ipc-channel = "0.14"
-lazy_static = "1"
+ipc-channel = { workspace = true }
+lazy_static = { workspace = true }
libflate = "0.1"
-log = "0.4"
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
-mime = "0.3"
-mime_guess = "2.0.3"
+malloc_size_of_derive = { workspace = true }
+mime = { workspace = true }
+mime_guess = { workspace = true }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
openssl = "0.10"
openssl-sys = "0.9"
-percent-encoding = "2.0"
+percent-encoding = { workspace = true }
pixels = { path = "../pixels" }
profile_traits = { path = "../profile_traits" }
-rayon = "1"
-serde = "1.0"
-serde_json = "1.0"
+rayon = { workspace = true }
+serde = { workspace = true }
+serde_json = { workspace = true }
servo_allocator = { path = "../allocator" }
servo_arc = { path = "../servo_arc" }
servo_config = { path = "../config" }
servo_url = { path = "../url" }
sha2 = "0.10"
-time = "0.1.41"
+time = { workspace = true }
tokio = { version = "1", package = "tokio", features = ["sync", "macros", "rt-multi-thread"] }
tokio2 = { version = "0.2", package = "tokio", features = ["sync", "macros", "rt-threaded", "tcp"] }
tokio-stream = "0.1"
tungstenite = "0.11"
-url = "2.0"
-uuid = { version = "0.8", features = ["v4"] }
+url = { workspace = true }
+uuid = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
[dev-dependencies]
@@ -74,7 +74,7 @@ std_test_override = { path = "../std_test_override" }
tokio-openssl = "0.6"
tokio-test = "0.4"
tokio-stream = { version = "0.1", features = ["net"] }
-hyper = { version = "0.14", features = ["full"] }
+hyper = { workspace = true, features = ["full"] }
[[test]]
name = "main"
diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml
index 9f5ec0ca4f3..a31a23759c5 100644
--- a/components/net_traits/Cargo.toml
+++ b/components/net_traits/Cargo.toml
@@ -13,31 +13,31 @@ test = false
doctest = false
[dependencies]
-content-security-policy = { version = "0.5", features = ["serde"] }
-cookie = "0.12"
+content-security-policy = { workspace = true }
+cookie = { workspace = true }
embedder_traits = { path = "../embedder_traits" }
-headers = "0.3"
-http = "0.2"
-hyper = "0.14"
-hyper_serde = "0.13"
-image = "0.24"
-ipc-channel = "0.14"
-lazy_static = "1"
-log = "0.4"
+headers = { workspace = true }
+http = { workspace = true }
+hyper = { workspace = true }
+hyper_serde = { workspace = true }
+image = { workspace = true }
+ipc-channel = { workspace = true }
+lazy_static = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
-mime = "0.3"
+malloc_size_of_derive = { workspace = true }
+mime = { workspace = true }
msg = { path = "../msg" }
-num-traits = "0.2"
-percent-encoding = "2.0"
+num-traits = { workspace = true }
+percent-encoding = { workspace = true }
pixels = { path = "../pixels" }
-serde = "1.0"
+serde = { workspace = true }
servo_arc = { path = "../servo_arc" }
servo_rand = { path = "../rand" }
servo_url = { path = "../url" }
-time = "0.1"
-url = "2.0"
-uuid = { version = "0.8", features = ["v4", "serde"] }
+time = { workspace = true }
+url = { workspace = true }
+uuid = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
[dev-dependencies]
diff --git a/components/pixels/Cargo.toml b/components/pixels/Cargo.toml
index ffcfaf54d49..708b16163ba 100644
--- a/components/pixels/Cargo.toml
+++ b/components/pixels/Cargo.toml
@@ -11,7 +11,7 @@ name = "pixels"
path = "lib.rs"
[dependencies]
-euclid = "0.22"
+euclid = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
-serde = { version = "1", features = ["derive"] }
+malloc_size_of_derive = { workspace = true }
+serde = { workspace = true, features = ["derive"] }
diff --git a/components/profile/Cargo.toml b/components/profile/Cargo.toml
index cef0b686df3..0e20ea2b1a4 100644
--- a/components/profile/Cargo.toml
+++ b/components/profile/Cargo.toml
@@ -11,18 +11,18 @@ name = "profile"
path = "lib.rs"
[dependencies]
-ipc-channel = "0.14"
+ipc-channel = { workspace = true }
profile_traits = { path = "../profile_traits" }
-serde = "1.0"
-serde_json = "1.0"
+serde = { workspace = true }
+serde_json = { workspace = true }
servo_config = { path = "../config" }
[target.'cfg(target_os = "macos")'.dependencies]
task_info = { path = "../../support/rust-task_info" }
[target.'cfg(target_os = "linux")'.dependencies]
-regex = "1.1"
+regex = { workspace = true }
[target.'cfg(not(target_os = "windows"))'.dependencies]
-libc = "0.2"
+libc = { workspace = true }
servo_allocator = { path = "../allocator" }
diff --git a/components/profile_traits/Cargo.toml b/components/profile_traits/Cargo.toml
index 655f7a001d8..2743cc61c09 100644
--- a/components/profile_traits/Cargo.toml
+++ b/components/profile_traits/Cargo.toml
@@ -11,10 +11,10 @@ name = "profile_traits"
path = "lib.rs"
[dependencies]
-crossbeam-channel = "0.4"
-ipc-channel = "0.14"
-log = "0.4"
-serde = "1.0"
+crossbeam-channel = { workspace = true }
+ipc-channel = { workspace = true }
+log = { workspace = true }
+serde = { workspace = true }
servo_config = { path = "../config" }
signpost = { git = "https://github.com/pcwalton/signpost.git" }
-time = "0.1.41"
+time = { workspace = true }
diff --git a/components/rand/Cargo.toml b/components/rand/Cargo.toml
index b85334b6d0b..97a0ce0b98e 100644
--- a/components/rand/Cargo.toml
+++ b/components/rand/Cargo.toml
@@ -11,9 +11,9 @@ name = "servo_rand"
path = "lib.rs"
[dependencies]
-lazy_static = "1"
-log = "0.4"
-rand = "0.7"
+lazy_static = { workspace = true }
+log = { workspace = true }
+rand = { workspace = true }
rand_core = "0.5"
rand_isaac = "0.2"
-uuid = "0.8"
+uuid = { workspace = true }
diff --git a/components/range/Cargo.toml b/components/range/Cargo.toml
index bf9db8164a1..bcaf874786f 100644
--- a/components/range/Cargo.toml
+++ b/components/range/Cargo.toml
@@ -12,6 +12,6 @@ path = "lib.rs"
[dependencies]
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
-num-traits = "0.2"
-serde = "1.0"
+malloc_size_of_derive = { workspace = true }
+num-traits = { workspace = true }
+serde = { workspace = true }
diff --git a/components/remutex/Cargo.toml b/components/remutex/Cargo.toml
index 94d3ebb4c38..612de162b26 100644
--- a/components/remutex/Cargo.toml
+++ b/components/remutex/Cargo.toml
@@ -13,5 +13,5 @@ test = false
doctest = false
[dependencies]
-lazy_static = "1"
-log = "0.4"
+lazy_static = { workspace = true }
+log = { workspace = true }
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index bbe1f4f78bc..24414be8d22 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -27,73 +27,73 @@ xr-profile = ["webxr-api/profile"]
[build-dependencies]
phf_codegen = "0.8"
phf_shared = "0.8"
-serde_json = "1.0"
+serde_json = { workspace = true }
[dependencies]
-accountable-refcell = { version = "0.2.0", optional = true }
-app_units = "0.7"
-arrayvec = "0.7"
-atomic_refcell = "0.1"
-backtrace = "0.3"
-base64 = "0.10.1"
-bitflags = "1.0"
+accountable-refcell = { workspace = true, optional = true }
+app_units = { workspace = true }
+arrayvec = { workspace = true }
+atomic_refcell = { workspace = true }
+backtrace = { workspace = true }
+base64 = { workspace = true }
+bitflags = { workspace = true }
bluetooth_traits = { path = "../bluetooth_traits" }
canvas_traits = { path = "../canvas_traits" }
chrono = "0.4"
-content-security-policy = { version = "0.5", features = ["serde"] }
-cookie = "0.12"
-crossbeam-channel = "0.4"
-cssparser = "0.29"
-data-url = "0.1.0"
+content-security-policy = { workspace = true }
+cookie = { workspace = true }
+crossbeam-channel = { workspace = true }
+cssparser = { workspace = true }
+data-url = { workspace = true }
deny_public_fields = { path = "../deny_public_fields" }
devtools_traits = { path = "../devtools_traits" }
dom_struct = { path = "../dom_struct" }
domobject_derive = { path = "../domobject_derive" }
embedder_traits = { path = "../embedder_traits" }
-encoding_rs = "0.8"
+encoding_rs = { workspace = true }
enum-iterator = "0.3"
-euclid = "0.22"
-fnv = "1.0"
-fxhash = "0.2"
+euclid = { workspace = true }
+fnv = { workspace = true }
+fxhash = { workspace = true }
gfx_traits = { path = "../gfx_traits" }
-headers = "0.3"
-html5ever = "0.26"
-http = "0.2"
-hyper_serde = "0.13"
-image = "0.24"
-indexmap = { version = "1.0.2", features = ["std"] }
-ipc-channel = "0.14"
-itertools = "0.8"
+headers = { workspace = true }
+html5ever = { workspace = true }
+http = { workspace = true }
+hyper_serde = { workspace = true }
+image = { workspace = true }
+indexmap = { workspace = true }
+ipc-channel = { workspace = true }
+itertools = { workspace = true }
js = { package = "mozjs", git = "https://github.com/servo/mozjs" }
jstraceable_derive = { path = "../jstraceable_derive" }
-keyboard-types = "0.6"
-lazy_static = "1"
-libc = "0.2"
-log = "0.4"
+keyboard-types = { workspace = true }
+lazy_static = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
+malloc_size_of_derive = { workspace = true }
media = { path = "../media" }
metrics = { path = "../metrics" }
-mime = "0.3.13"
-mime_guess = "2.0.0"
-mitochondria = "1.1.2"
+mime = { workspace = true }
+mime_guess = { workspace = true }
+mitochondria = { workspace = true }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
-num-traits = "0.2"
-parking_lot = "0.11"
-percent-encoding = "2.0"
+num-traits = { workspace = true }
+parking_lot = { workspace = true }
+percent-encoding = { workspace = true }
phf = "0.8"
pixels = { path = "../pixels" }
profile_traits = { path = "../profile_traits" }
range = { path = "../range" }
ref_filter_map = "1.0.1"
-regex = "1.1"
+regex = { workspace = true }
script_layout_interface = { path = "../script_layout_interface" }
script_plugins = { path = "../script_plugins" }
script_traits = { path = "../script_traits" }
selectors = { path = "../selectors", features = ["shmem"] }
-serde = { version = "1", features = ["derive"] }
-serde_bytes = "0.11"
+serde = { workspace = true, features = ["derive"] }
+serde_bytes = { workspace = true }
servo-media = { git = "https://github.com/servo/media" }
servo_allocator = { path = "../allocator" }
servo_arc = { path = "../servo_arc" }
@@ -102,24 +102,24 @@ servo_config = { path = "../config" }
servo_geometry = { path = "../geometry" }
servo_rand = { path = "../rand" }
servo_url = { path = "../url" }
-smallvec = { version = "1.9", features = ["union"] }
-sparkle = "0.1"
+smallvec = { workspace = true, features = ["union"] }
+sparkle = { workspace = true }
style = { path = "../style", features = ["servo"] }
style_traits = { path = "../style_traits" }
swapper = "0.1"
tempfile = "3"
tendril = { version = "0.4.1", features = ["encoding_rs"] }
-time = "0.1.41"
-unicode-bidi = "0.3.4"
+time = { workspace = true }
+unicode-bidi = { workspace = true }
unicode-segmentation = "1.1.0"
-url = "2.0"
+url = { workspace = true }
utf-8 = "0.7"
-uuid = { version = "0.8", features = ["v4", "serde"] }
-webdriver = "0.44"
+uuid = { workspace = true, features = ["serde"] }
+webdriver = { workspace = true }
webgpu = { path = "../webgpu" }
webrender_api = { git = "https://github.com/servo/webrender" }
webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
-xml5ever = "0.17"
+xml5ever = { workspace = true }
[target.'cfg(not(target_os = "ios"))'.dependencies]
mozangle = { version = "0.3", features = ["egl", "build_dlls"] }
diff --git a/components/script_layout_interface/Cargo.toml b/components/script_layout_interface/Cargo.toml
index 8ebf48b5d4c..6a123c766e9 100644
--- a/components/script_layout_interface/Cargo.toml
+++ b/components/script_layout_interface/Cargo.toml
@@ -11,22 +11,22 @@ name = "script_layout_interface"
path = "lib.rs"
[dependencies]
-app_units = "0.7"
-atomic_refcell = "0.1"
+app_units = { workspace = true }
+atomic_refcell = { workspace = true }
canvas_traits = { path = "../canvas_traits" }
-crossbeam-channel = "0.4"
-euclid = "0.22"
-fxhash = "0.2"
+crossbeam-channel = { workspace = true }
+euclid = { workspace = true }
+fxhash = { workspace = true }
gfx_traits = { path = "../gfx_traits" }
-html5ever = "0.26"
-ipc-channel = "0.14"
-libc = "0.2"
+html5ever = { workspace = true }
+ipc-channel = { workspace = true }
+libc = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
+malloc_size_of_derive = { workspace = true }
metrics = { path = "../metrics" }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
-parking_lot = "0.11"
+parking_lot = { workspace = true }
profile_traits = { path = "../profile_traits" }
range = { path = "../range" }
script_traits = { path = "../script_traits" }
diff --git a/components/script_traits/Cargo.toml b/components/script_traits/Cargo.toml
index cd59c8da8a9..1ce7cd160e3 100644
--- a/components/script_traits/Cargo.toml
+++ b/components/script_traits/Cargo.toml
@@ -11,37 +11,37 @@ name = "script_traits"
path = "lib.rs"
[dependencies]
-bitflags = "1.0"
+bitflags = { workspace = true }
bluetooth_traits = { path = "../bluetooth_traits" }
canvas_traits = { path = "../canvas_traits" }
-cookie = "0.12"
-crossbeam-channel = "0.4"
+cookie = { workspace = true }
+crossbeam-channel = { workspace = true }
devtools_traits = { path = "../devtools_traits" }
embedder_traits = { path = "../embedder_traits" }
-euclid = "0.22"
+euclid = { workspace = true }
gfx_traits = { path = "../gfx_traits" }
-headers = "0.3"
-http = "0.2"
-hyper_serde = "0.13"
-ipc-channel = "0.14"
-keyboard-types = "0.6"
-libc = "0.2"
-log = "0.4"
+headers = { workspace = true }
+http = { workspace = true }
+hyper_serde = { workspace = true }
+ipc-channel = { workspace = true }
+keyboard-types = { workspace = true }
+libc = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
-malloc_size_of_derive = "0.1"
+malloc_size_of_derive = { workspace = true }
media = { path = "../media" }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
pixels = { path = "../pixels" }
profile_traits = { path = "../profile_traits" }
-serde = "1.0"
+serde = { workspace = true }
servo_atoms = { path = "../atoms" }
servo_url = { path = "../url" }
-smallvec = "1.9"
+smallvec = { workspace = true }
style_traits = { path = "../style_traits", features = ["servo"] }
-time = "0.1.41"
-uuid = { version = "0.8", features = ["v4"] }
-webdriver = "0.44"
+time = { workspace = true }
+uuid = { workspace = true }
+webdriver = { workspace = true }
webgpu = { path = "../webgpu" }
webrender_api = { git = "https://github.com/servo/webrender" }
webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml
index 429ad82953f..67b91717034 100644
--- a/components/servo/Cargo.toml
+++ b/components/servo/Cargo.toml
@@ -45,21 +45,21 @@ canvas = { path = "../canvas", default-features = false }
canvas_traits = { path = "../canvas_traits" }
compositing = { path = "../compositing", features = ["gl"] }
constellation = { path = "../constellation" }
-crossbeam-channel = "0.4"
+crossbeam-channel = { workspace = true }
devtools = { path = "../devtools" }
devtools_traits = { path = "../devtools_traits" }
embedder_traits = { path = "../embedder_traits" }
-env_logger = "0.8"
-euclid = "0.22"
+env_logger = { workspace = true }
+euclid = { workspace = true }
gfx = { path = "../gfx" }
gfx_traits = { path = "../gfx_traits" }
-gleam = "0.12"
+gleam = { workspace = true }
gstreamer = { version = "0.15", features = ["v1_16"], optional = true }
-ipc-channel = "0.14"
-keyboard-types = "0.6"
+ipc-channel = { workspace = true }
+keyboard-types = { workspace = true }
layout_thread_2013 = { path = "../layout_thread", optional = true }
layout_thread_2020 = { path = "../layout_thread_2020", optional = true }
-log = "0.4"
+log = { workspace = true }
media = { path = "../media" }
msg = { path = "../msg" }
net = { path = "../net" }
@@ -75,10 +75,10 @@ servo-media-gstreamer = { git = "https://github.com/servo/media", optional = tru
servo_config = { path = "../config" }
servo_geometry = { path = "../geometry" }
servo_url = { path = "../url" }
-sparkle = "0.1"
+sparkle = { workspace = true }
style = { path = "../style", features = ["servo"] }
style_traits = { path = "../style_traits", features = ["servo"] }
-surfman = "0.6"
+surfman = { workspace = true }
webdriver_server = { path = "../webdriver_server", optional = true }
webgpu = { path = "../webgpu" }
webrender = { git = "https://github.com/servo/webrender" }
diff --git a/components/servo_arc/Cargo.toml b/components/servo_arc/Cargo.toml
index 34f27619bcb..0f50d9cd41f 100644
--- a/components/servo_arc/Cargo.toml
+++ b/components/servo_arc/Cargo.toml
@@ -17,5 +17,5 @@ servo = ["serde"]
[dependencies]
nodrop = { version = "0.1.8" }
-serde = { version = "1.0", optional = true }
+serde = { workspace = true, optional = true }
stable_deref_trait = "1.0.0"
diff --git a/components/to_shmem/Cargo.toml b/components/to_shmem/Cargo.toml
index feafeebd0ee..a87b441fa10 100644
--- a/components/to_shmem/Cargo.toml
+++ b/components/to_shmem/Cargo.toml
@@ -15,9 +15,9 @@ servo = ["cssparser/serde", "string_cache"]
gecko = []
[dependencies]
-cssparser = "0.29"
+cssparser = { workspace = true }
servo_arc = { path = "../servo_arc" }
-smallbitvec = "2.1.1"
-smallvec = "1.0"
-string_cache = { version = "0.8", optional = true }
-thin-slice = "0.1.0"
+smallbitvec = { workspace = true }
+smallvec = { workspace = true }
+string_cache = { workspace = true, optional = true }
+thin-slice = { workspace = true }
diff --git a/components/to_shmem_derive/Cargo.toml b/components/to_shmem_derive/Cargo.toml
index 9cad6a8ad7a..f60a9a4da1f 100644
--- a/components/to_shmem_derive/Cargo.toml
+++ b/components/to_shmem_derive/Cargo.toml
@@ -11,9 +11,9 @@ path = "lib.rs"
proc-macro = true
[dependencies]
-darling = { version = "0.10", default-features = false }
+darling = { workspace = true }
derive_common = { path = "../derive_common" }
-proc-macro2 = "1"
-quote = "1"
-syn = { version = "1", default-features = false, features = ["derive", "parsing"] }
-synstructure = "0.12"
+proc-macro2 = { workspace = true }
+quote = { workspace = true }
+syn = { workspace = true }
+synstructure = { workspace = true }
diff --git a/components/url/Cargo.toml b/components/url/Cargo.toml
index a8ab995ef6b..979849781e7 100644
--- a/components/url/Cargo.toml
+++ b/components/url/Cargo.toml
@@ -12,9 +12,9 @@ path = "lib.rs"
[dependencies]
malloc_size_of = { path = "../malloc_size_of", features = ["servo"] }
-malloc_size_of_derive = "0.1"
-serde = { version = "1.0", features = ["derive"] }
+malloc_size_of_derive = { workspace = true }
+serde = { workspace = true, features = ["derive"] }
servo_rand = { path = "../rand" }
to_shmem = { path = "../to_shmem" }
-url = { version = "2.0", features = ["serde"] }
-uuid = { version = "0.8", features = ["serde", "v4"] }
+url = { workspace = true, features = ["serde"] }
+uuid = { workspace = true, features = ["serde"] }
diff --git a/components/webdriver_server/Cargo.toml b/components/webdriver_server/Cargo.toml
index 4b10e1ccd6c..c8610759dad 100644
--- a/components/webdriver_server/Cargo.toml
+++ b/components/webdriver_server/Cargo.toml
@@ -11,25 +11,25 @@ name = "webdriver_server"
path = "lib.rs"
[dependencies]
-base64 = "0.10"
+base64 = { workspace = true }
compositing = { path = "../compositing" }
-cookie = "0.12"
-crossbeam-channel = "0.4"
-euclid = "0.22"
-headers = "0.3"
-http = "0.2"
-image = "0.24"
-ipc-channel = "0.14"
-keyboard-types = "0.6"
-log = "0.4"
+cookie = { workspace = true }
+crossbeam-channel = { workspace = true }
+euclid = { workspace = true }
+headers = { workspace = true }
+http = { workspace = true }
+image = { workspace = true }
+ipc-channel = { workspace = true }
+keyboard-types = { workspace = true }
+log = { workspace = true }
msg = { path = "../msg" }
net_traits = { path = "../net_traits" }
pixels = { path = "../pixels" }
script_traits = { path = "../script_traits" }
-serde = "1"
-serde_json = "1"
+serde = { workspace = true }
+serde_json = { workspace = true }
servo_config = { path = "../config" }
servo_url = { path = "../url" }
style_traits = { path = "../style_traits" }
-uuid = { version = "0.8", features = ["v4"] }
-webdriver = "0.44"
+uuid = { workspace = true }
+webdriver = { workspace = true }
diff --git a/components/webgpu/Cargo.toml b/components/webgpu/Cargo.toml
index 5d3ab22191f..868f9c656c4 100644
--- a/components/webgpu/Cargo.toml
+++ b/components/webgpu/Cargo.toml
@@ -11,15 +11,15 @@ name = "webgpu"
path = "lib.rs"
[dependencies]
-arrayvec = { version = "0.7", features = ["serde"] }
-euclid = "0.22"
-ipc-channel = "0.14"
-log = "0.4"
+arrayvec = { workspace = true, features = ["serde"] }
+euclid = { workspace = true }
+ipc-channel = { workspace = true }
+log = { workspace = true }
malloc_size_of = { path = "../malloc_size_of" }
msg = { path = "../msg" }
-serde = { version = "1.0", features = ["serde_derive"] }
+serde = { workspace = true, features = ["serde_derive"] }
servo_config = { path = "../config" }
-smallvec = { version = "1.9", features = ["serde"] }
+smallvec = { workspace = true, features = ["serde"] }
webrender_api = { git = "https://github.com/servo/webrender" }
webrender_traits = { path = "../webrender_traits" }
wgpu-core = { version = "0.6.0", git = "https://github.com/gfx-rs/wgpu", features = ["replay", "trace", "serial-pass"], rev = "e72724a6e393503c73f37e86aa9317a5c62e32b8" }
diff --git a/components/webrender_surfman/Cargo.toml b/components/webrender_surfman/Cargo.toml
index d840cb3c5ae..f196ec1f43b 100644
--- a/components/webrender_surfman/Cargo.toml
+++ b/components/webrender_surfman/Cargo.toml
@@ -11,7 +11,7 @@ name = "webrender_surfman"
path = "lib.rs"
[dependencies]
-euclid = "0.22"
-surfman = "0.6"
-surfman-chains = "0.7"
+euclid = { workspace = true }
+surfman = { workspace = true }
+surfman-chains = { workspace = true }
diff --git a/components/webrender_traits/Cargo.toml b/components/webrender_traits/Cargo.toml
index 59732b9b93c..69af8e92d3a 100644
--- a/components/webrender_traits/Cargo.toml
+++ b/components/webrender_traits/Cargo.toml
@@ -11,6 +11,6 @@ name = "webrender_traits"
path = "lib.rs"
[dependencies]
-euclid = "0.22"
+euclid = { workspace = true }
webrender_api = { git = "https://github.com/servo/webrender" }
diff --git a/ports/gstplugin/Cargo.toml b/ports/gstplugin/Cargo.toml
index 73229c1d402..1d1ed7768e3 100644
--- a/ports/gstplugin/Cargo.toml
+++ b/ports/gstplugin/Cargo.toml
@@ -15,8 +15,8 @@ crate-type = ["cdylib"]
path = "lib.rs"
[dependencies]
-crossbeam-channel = "0.4"
-euclid = "0.22"
+crossbeam-channel = { workspace = true }
+euclid = { workspace = true }
glib = "0.9"
gstreamer = "0.15"
gstreamer-base = "0.15"
@@ -24,14 +24,14 @@ gstreamer-gl = "0.15"
gstreamer-gl-sys = { version = "0.8", features = ["wayland"] }
gstreamer-sys = "0.8"
gstreamer-video = "0.15"
-lazy_static = "1.4"
+lazy_static = { workspace = true }
libservo = { path = "../../components/servo" }
-log = "0.4"
+log = { workspace = true }
servo-media = { git = "https://github.com/servo/media" }
-sparkle = "0.1"
-surfman = "0.6"
-surfman-chains = "0.7"
-surfman-chains-api = "0.2"
+sparkle = { workspace = true }
+surfman = { workspace = true }
+surfman-chains = { workspace = true }
+surfman-chains-api = { workspace = true }
webxr = { git = "https://github.com/servo/webxr", features = ["glwindow"] }
[build-dependencies]
diff --git a/ports/libmlservo/Cargo.toml b/ports/libmlservo/Cargo.toml
index 38d9e41f439..3ab604bf2f8 100644
--- a/ports/libmlservo/Cargo.toml
+++ b/ports/libmlservo/Cargo.toml
@@ -18,11 +18,11 @@ layout-2013 = ["simpleservo/layout-2013"]
layout-2020 = ["simpleservo/layout-2020"]
[dependencies]
-libc = "0.2"
+libc = { workspace = true }
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
-log = "0.4"
+log = { workspace = true }
servo-egl = "0.2"
simpleservo = { path = "../libsimpleservo/api", features = ["no_static_freetype"] }
-smallvec = "1.9"
+smallvec = { workspace = true }
webxr = { git = "https://github.com/servo/webxr", features = ["ipc", "magicleap"] }
webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
diff --git a/ports/libsimpleservo/api/Cargo.toml b/ports/libsimpleservo/api/Cargo.toml
index 95b6949f989..4a891d7cd46 100644
--- a/ports/libsimpleservo/api/Cargo.toml
+++ b/ports/libsimpleservo/api/Cargo.toml
@@ -7,30 +7,30 @@ edition = "2018"
publish = false
[dependencies]
-getopts = "0.2.11"
-ipc-channel = "0.14"
+getopts = { workspace = true }
+ipc-channel = { workspace = true }
libservo = { path = "../../../components/servo" }
-log = "0.4"
+log = { workspace = true }
servo-media = { git = "https://github.com/servo/media" }
-surfman = { version = "0.6", features = ["sm-angle-default"] }
+surfman = { workspace = true, features = ["sm-angle-default"] }
webxr = { git = "https://github.com/servo/webxr"}
webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
[target.'cfg(not(target_os = "macos"))'.dependencies]
-libc = "0.2"
+libc = { workspace = true }
[target.'cfg(target_os = "macos")'.dependencies]
core-foundation = "0.6"
[target.'cfg(target_os = "windows")'.dependencies]
-winapi = "0.3.2"
+winapi = { workspace = true }
[target.'cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "openbsd"))'.dependencies]
libloading = "0.5"
[build-dependencies]
gl_generator = "0.14"
-serde_json = "1.0"
+serde_json = { workspace = true }
[features]
debugmozjs = ["libservo/debugmozjs"]
diff --git a/ports/libsimpleservo/capi/Cargo.toml b/ports/libsimpleservo/capi/Cargo.toml
index d12140c355f..91a9c2846e0 100644
--- a/ports/libsimpleservo/capi/Cargo.toml
+++ b/ports/libsimpleservo/capi/Cargo.toml
@@ -13,17 +13,17 @@ test = false
bench = false
[dependencies]
-backtrace = "0.3"
-env_logger = "0.8"
-lazy_static = "1"
-log = "0.4"
+backtrace = { workspace = true }
+env_logger = { workspace = true }
+lazy_static = { workspace = true }
+log = { workspace = true }
simpleservo = { path = "../api" }
-surfman = "0.6"
-keyboard-types = "0.6"
+surfman = { workspace = true }
+keyboard-types = { workspace = true }
[target.'cfg(target_os = "windows")'.dependencies]
-libc = "0.2"
-winapi = { version = "0.3", features = ["wingdi", "winuser", "winnt", "winbase", "processenv", "namedpipeapi", "ntdef", "minwindef", "handleapi", "debugapi"] }
+libc = { workspace = true }
+winapi = { workspace = true, features = ["wingdi", "winuser", "winnt", "winbase", "processenv", "namedpipeapi", "ntdef", "minwindef", "handleapi", "debugapi"] }
[build-dependencies]
cbindgen = "0.20"
diff --git a/ports/libsimpleservo/jniapi/Cargo.toml b/ports/libsimpleservo/jniapi/Cargo.toml
index c4be5a2334c..17383a15a54 100644
--- a/ports/libsimpleservo/jniapi/Cargo.toml
+++ b/ports/libsimpleservo/jniapi/Cargo.toml
@@ -18,9 +18,9 @@ android_injected_glue = "0.2"
android_logger = "0.10"
gstreamer = "0.15"
jni = "0.18.0"
-libc = "0.2"
-log = "0.4"
-serde_json = "1.0"
+libc = { workspace = true }
+log = { workspace = true }
+serde_json = { workspace = true }
simpleservo = { path = "../api" }
[build-dependencies]
diff --git a/ports/winit/Cargo.toml b/ports/winit/Cargo.toml
index 7f471728b75..02fec404993 100644
--- a/ports/winit/Cargo.toml
+++ b/ports/winit/Cargo.toml
@@ -46,27 +46,27 @@ webrender_debugger = ["libservo/webrender_debugger"]
xr-profile = ["libservo/xr-profile"]
[target.'cfg(not(target_os = "android"))'.dependencies]
-backtrace = "0.3"
+backtrace = { workspace = true }
clipboard = "0.5"
-euclid = "0.22"
-getopts = "0.2.11"
-keyboard-types = "0.6"
-lazy_static = "1"
-libc = "0.2"
+euclid = { workspace = true }
+getopts = { workspace = true }
+keyboard-types = { workspace = true }
+lazy_static = { workspace = true }
+libc = { workspace = true }
libservo = { path = "../../components/servo" }
-log = "0.4"
+log = { workspace = true }
servo-media = { git = "https://github.com/servo/media" }
shellwords = "1.0.0"
-surfman = { version = "0.6", features = ["sm-winit", "sm-x11"] }
+surfman = { workspace = true, features = ["sm-winit", "sm-x11"] }
tinyfiledialogs = "3.0"
webxr = { git = "https://github.com/servo/webxr", features = ["ipc", "glwindow", "headless"] }
winit = "0.28.3"
[target.'cfg(any(target_os = "linux", target_os = "windows"))'.dependencies]
-image = "0.24"
+image = { workspace = true }
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies]
sig = "1.0"
[target.'cfg(target_os = "windows")'.dependencies]
-winapi = { version = "0.3", features = ["wingdi", "winuser", "winnt", "winbase", "processenv", "namedpipeapi", "ntdef", "minwindef", "handleapi", "debugapi"] }
+winapi = { workspace = true, features = ["wingdi", "winuser", "winnt", "winbase", "processenv", "namedpipeapi", "ntdef", "minwindef", "handleapi", "debugapi"] }
diff --git a/tests/unit/metrics/Cargo.toml b/tests/unit/metrics/Cargo.toml
index 86b0c2d10c1..7a0bf170dc7 100644
--- a/tests/unit/metrics/Cargo.toml
+++ b/tests/unit/metrics/Cargo.toml
@@ -12,9 +12,9 @@ doctest = false
[dependencies]
gfx_traits = {path = "../../../components/gfx_traits"}
-ipc-channel = "0.14"
+ipc-channel = { workspace = true }
metrics = {path = "../../../components/metrics"}
msg = {path = "../../../components/msg"}
profile_traits = {path = "../../../components/profile_traits"}
servo_url = {path = "../../../components/url"}
-time = "0.1.12"
+time = { workspace = true }
diff --git a/tests/unit/profile/Cargo.toml b/tests/unit/profile/Cargo.toml
index 829bdfd3a2c..79deebc2213 100644
--- a/tests/unit/profile/Cargo.toml
+++ b/tests/unit/profile/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
doctest = false
[dependencies]
-ipc-channel = "0.14"
+ipc-channel = { workspace = true }
profile = {path = "../../../components/profile"}
profile_traits = {path = "../../../components/profile_traits"}
servo_config = {path = "../../../components/config"}
diff --git a/tests/unit/script/Cargo.toml b/tests/unit/script/Cargo.toml
index 7006477707f..2af8ced2109 100644
--- a/tests/unit/script/Cargo.toml
+++ b/tests/unit/script/Cargo.toml
@@ -10,7 +10,7 @@ name = "script_tests"
path = "lib.rs"
[dependencies]
-euclid = "0.22"
-keyboard-types = "0.6"
+euclid = { workspace = true }
+keyboard-types = { workspace = true }
script = {path = "../../../components/script"}
servo_url = {path = "../../../components/url"}
diff --git a/tests/unit/style/Cargo.toml b/tests/unit/style/Cargo.toml
index 2fa49b6691b..c9f17dcf973 100644
--- a/tests/unit/style/Cargo.toml
+++ b/tests/unit/style/Cargo.toml
@@ -10,12 +10,12 @@ path = "lib.rs"
doctest = false
[dependencies]
-app_units = "0.7"
-cssparser = "0.29"
-euclid = "0.22"
-html5ever = "0.26"
-rayon = "1"
-serde_json = "1.0"
+app_units = { workspace = true }
+cssparser = { workspace = true }
+euclid = { workspace = true }
+html5ever = { workspace = true }
+rayon = { workspace = true }
+serde_json = { workspace = true }
selectors = {path = "../../../components/selectors", features = ["shmem"] }
servo_arc = {path = "../../../components/servo_arc"}
servo_atoms = {path = "../../../components/atoms"}