mirror of
https://github.com/servo/servo
synced 2026-04-26 01:25:32 +02:00
We need to bump the accesskit version in order to use [subtrees](https://docs.rs/accesskit/latest/accesskit/struct.Node.html#method.tree_id), which are required to join the servo tree into the embedder tree. We need to patch egui for servoshell, as we're waiting for them to land the patch bumping their version of accesskit. Once https://github.com/emilk/egui/pull/7850 lands and a new version of egui is pushed out, we'll be able to remove the patch. Testing: No tests. Fixes: Part of #4344 Signed-off-by: Alice Boxhall <alice@igalia.com>
346 lines
12 KiB
TOML
346 lines
12 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"components/media/examples",
|
|
"components/xpath",
|
|
"ports/servoshell",
|
|
"tests/unit/*",
|
|
]
|
|
default-members = ["ports/servoshell"]
|
|
exclude = [".cargo", "support/crown"]
|
|
|
|
[workspace.package]
|
|
version = "0.0.1"
|
|
authors = ["The Servo Project Developers"]
|
|
license = "MPL-2.0"
|
|
edition = "2024"
|
|
publish = false
|
|
# We have yet to decide on a policy for updating the minimum supported Rust version.
|
|
# Before increasing this, please open a discussion on Zulip explaining the reason
|
|
# why we should consider increasing our minimum supported Rust version.
|
|
# Please also note, that the **default** Rust version in rust-toolchain.toml may be
|
|
# bumped freely.
|
|
# Skip 1.90 which causes mis-compilation: https://github.com/rust-lang/rust/issues/147265
|
|
rust-version = "1.86.0"
|
|
|
|
[workspace.dependencies]
|
|
accesskit = { version = "0.24.0", features = ["serde"] }
|
|
accountable-refcell = "0.2.2"
|
|
aes = "0.8.4"
|
|
aes-gcm = "0.10.3"
|
|
aes-kw = { version = "0.2.1", features = ["alloc"] }
|
|
app_units = "0.7"
|
|
arboard = "3"
|
|
argon2 = { version = "0.5", features = ["alloc"] }
|
|
arrayvec = "0.7"
|
|
async-tungstenite = { version = "0.32", features = ["tokio-rustls-webpki-roots"] }
|
|
atomic_refcell = "0.1.13"
|
|
aws-lc-rs = { version = "1.16", default-features = false, features = ["aws-lc-sys"] }
|
|
background_hang_monitor_api = { path = "components/shared/background_hang_monitor" }
|
|
backtrace = "0.3"
|
|
base = { path = "components/shared/base" }
|
|
base64 = "0.22.1"
|
|
base64ct = { version = "1.8", features = ["alloc"] }
|
|
bitflags = "2.11"
|
|
bluetooth_traits = { path = "components/shared/bluetooth" }
|
|
brotli = "8.0.2"
|
|
bytemuck = "1"
|
|
byteorder = "1.5"
|
|
canvas_traits = { path = "components/shared/canvas" }
|
|
cbc = "0.1.2"
|
|
cfg-if = "1.0.4"
|
|
chacha20poly1305 = "0.10"
|
|
chardetng = "0.1"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
cipher = { version = "0.4.4", features = ["alloc"] }
|
|
constellation_traits = { path = "components/shared/constellation" }
|
|
content-security-policy = { version = "0.6.0", features = ["serde"] }
|
|
cookie = { package = "cookie", version = "0.18" }
|
|
crossbeam-channel = "0.5"
|
|
cssparser = { version = "0.36", features = ["serde"] }
|
|
ctr = "0.9.2"
|
|
data-url = "0.3"
|
|
der = { version = "0.7", features = ["alloc", "derive"] }
|
|
devtools_traits = { path = "components/shared/devtools" }
|
|
digest = "0.10"
|
|
dpi = "0.1"
|
|
dwrote = "0.11.5"
|
|
ecdsa = "0.16"
|
|
elliptic-curve = "0.13"
|
|
embedder_traits = { path = "components/shared/embedder" }
|
|
encoding_rs = { version = "0.8", features = ["serde"] }
|
|
env_logger = "0.11"
|
|
euclid = "0.22"
|
|
flate2 = "1.1"
|
|
fonts_traits = { path = "components/shared/fonts" }
|
|
freetype-sys = "0.20"
|
|
futures = { version = "0.3", default-features = false }
|
|
futures-core = { version = "0.3", default-features = false }
|
|
futures-util = { version = "0.3", default-features = false }
|
|
gleam = "0.15"
|
|
glib = "0.21"
|
|
glib-sys = "0.21"
|
|
glow = "0.16.0"
|
|
gstreamer = { version = "0.24", features = ["v1_18"] }
|
|
gstreamer-app = "0.24"
|
|
gstreamer-audio = "0.24"
|
|
gstreamer-base = "0.24"
|
|
gstreamer-gl = "0.24"
|
|
gstreamer-gl-egl = "0.24"
|
|
gstreamer-gl-sys = "0.24"
|
|
gstreamer-gl-wayland = "0.24"
|
|
gstreamer-gl-x11 = "0.24"
|
|
gstreamer-play = "0.24"
|
|
gstreamer-sdp = "0.24"
|
|
gstreamer-sys = "0.24"
|
|
gstreamer-video = "0.24"
|
|
gstreamer-webrtc = { version = "0.24", features = ["v1_18"] }
|
|
harfbuzz-sys = "0.6.1"
|
|
headers = "0.4"
|
|
hitrace = { version = "0.1.6", features = ["api-19", "tracing-rs"] }
|
|
hkdf = "0.12"
|
|
html5ever = "0.38"
|
|
http = "1.4"
|
|
http-body-util = "0.1"
|
|
hyper = "1.8"
|
|
hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "logging", "tls12", "webpki-tokio"] }
|
|
hyper-util = { version = "0.1", features = ["client-legacy", "http2", "tokio", "client-proxy"] }
|
|
hyper_serde = { path = "components/hyper_serde" }
|
|
icu_locid = "1.5.0"
|
|
icu_segmenter = "1.5.0"
|
|
image = { version = "0.25", default-features = false, features = ["avif", "rayon", "bmp", "gif", "ico", "jpeg", "png", "webp"] }
|
|
imsz = "0.4"
|
|
indexmap = { version = "2.11.4", features = ["std"] }
|
|
ipc-channel = "0.21"
|
|
itertools = "0.14"
|
|
js = { package = "mozjs", version = "=0.15.0", default-features = false, features = ["libz-sys", "intl"] }
|
|
keyboard-types = { version = "0.8.3", features = ["serde", "webdriver"] }
|
|
kurbo = { version = "0.12", features = ["euclid"] }
|
|
layout_api = { path = "components/shared/layout" }
|
|
libc = "0.2"
|
|
log = "0.4.29"
|
|
mach2 = "0.6"
|
|
malloc_size_of = { package = "servo_malloc_size_of", path = "components/malloc_size_of" }
|
|
malloc_size_of_derive = "0.1"
|
|
markup5ever = "0.38"
|
|
memmap2 = "0.9.10"
|
|
mime = "0.3.13"
|
|
mime-multipart-hyper1 = "0.10.0"
|
|
mime_guess = "2.0.5"
|
|
ml-dsa = "0.0.4"
|
|
ml-kem = { version = "0.2", features = ["deterministic"] }
|
|
mozangle = "0.5.3"
|
|
net_traits = { path = "components/shared/net" }
|
|
nix = "0.30"
|
|
nom = "8.0.0"
|
|
nom-rfc8288 = "0.4.0"
|
|
num-bigint-dig = "0.8"
|
|
num-derive = "0.4.2"
|
|
num-traits = "0.2"
|
|
num_cpus = "1.17.0"
|
|
objc2 = "0.6.3"
|
|
objc2-core-foundation = "0.3.2"
|
|
objc2-core-graphics = "0.3.2"
|
|
objc2-core-text = "0.3.2"
|
|
ocb3 = "0.1.0"
|
|
openxr = "0.20"
|
|
paint_api = { path = "components/shared/paint" }
|
|
p256 = { version = "0.13", features = ["ecdh"] }
|
|
p384 = { version = "0.13", features = ["ecdh"] }
|
|
p521 = { version = "0.13", features = ["ecdh"] }
|
|
parking_lot = { version = "0.12", features = ["serde"] }
|
|
peniko = "0.5"
|
|
percent-encoding = "2.3"
|
|
pkcs8 = { version = "0.10", features = ["rand_core"] }
|
|
postcard = { version = "1.1.3", default-features = false, features = ["use-std"] }
|
|
proc-macro2 = "1"
|
|
profile_traits = { path = "components/shared/profile" }
|
|
quote = "1"
|
|
rand = "0.9"
|
|
raw-window-handle = "0.6"
|
|
rayon = "1"
|
|
read-fonts = "0.35.0"
|
|
regex = "1.12"
|
|
resvg = "0.45.0"
|
|
rsa = { version = "0.9.10", features = ["sha1", "sha2"] }
|
|
rustc-hash = "2.1.1"
|
|
rustls = { version = "0.23", default-features = false, features = ["logging", "std", "tls12"] }
|
|
rustls-pki-types = "1.14"
|
|
rustls-platform-verifier = "0.6.2"
|
|
script_traits = { path = "components/shared/script" }
|
|
sea-query = { version = "1.0.0-rc.31", default-features = false, features = ["backend-sqlite", "derive"] }
|
|
sea-query-rusqlite = { version = "0.8.0-rc.15" }
|
|
sec1 = "0.7"
|
|
selectors = { git = "https://github.com/servo/stylo", rev = "9a413b4d05d899c3baedd7b648dbf2c23dc9b879" }
|
|
serde = "1.0.228"
|
|
serde_bytes = "0.11"
|
|
serde_core = "1.0.226"
|
|
serde_json = "1.0"
|
|
servo-media = { path = "components/media/servo-media" }
|
|
servo-media-dummy = { path = "components/media/backends/dummy" }
|
|
servo-media-gstreamer = { path = "components/media/backends/gstreamer" }
|
|
servo-tracing = { path = "components/servo_tracing" }
|
|
servo_arc = { git = "https://github.com/servo/stylo", rev = "9a413b4d05d899c3baedd7b648dbf2c23dc9b879" }
|
|
sha1 = "0.10"
|
|
sha2 = "0.10"
|
|
sha3 = "0.10"
|
|
skrifa = "0.37.0"
|
|
smallvec = { version = "1.15", features = ["serde", "union"] }
|
|
storage_traits = { path = "components/shared/storage" }
|
|
string_cache = "0.9"
|
|
strum = { version = "0.27", features = ["derive"] }
|
|
stylo = { git = "https://github.com/servo/stylo", rev = "9a413b4d05d899c3baedd7b648dbf2c23dc9b879" }
|
|
stylo_atoms = { git = "https://github.com/servo/stylo", rev = "9a413b4d05d899c3baedd7b648dbf2c23dc9b879" }
|
|
stylo_dom = { git = "https://github.com/servo/stylo", rev = "9a413b4d05d899c3baedd7b648dbf2c23dc9b879" }
|
|
stylo_malloc_size_of = { git = "https://github.com/servo/stylo", rev = "9a413b4d05d899c3baedd7b648dbf2c23dc9b879" }
|
|
stylo_static_prefs = { git = "https://github.com/servo/stylo", rev = "9a413b4d05d899c3baedd7b648dbf2c23dc9b879" }
|
|
stylo_traits = { git = "https://github.com/servo/stylo", rev = "9a413b4d05d899c3baedd7b648dbf2c23dc9b879" }
|
|
surfman = { version = "0.11.0", features = ["chains"] }
|
|
syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] }
|
|
synstructure = "0.13"
|
|
taffy = { version = "0.9.2", default-features = false, features = ["calc", "detailed_layout_info", "grid", "std"] }
|
|
tendril = { version = "0.5", features = ["encoding_rs"] }
|
|
tikv-jemalloc-sys = "0.6.1"
|
|
tikv-jemallocator = "0.6.1"
|
|
time = { package = "time", version = "0.3", features = ["large-dates", "local-offset", "serde"] }
|
|
tokio = "1"
|
|
tokio-rustls = { version = "0.26", default-features = false, features = ["logging"] }
|
|
tokio-stream = "0.1"
|
|
tokio-util = { version = "0.7.18", default-features = false }
|
|
tower = { version = "0.5", default-features = false, features = ["util"] }
|
|
tracing = "0.1.44"
|
|
tracing-perfetto = "0.1.5"
|
|
tracing-subscriber = "0.3.22"
|
|
tungstenite = "0.28"
|
|
unicode-bidi = "0.3.18"
|
|
unicode-properties = { version = "0.1.4", features = ["emoji"] }
|
|
unicode-script = "0.5"
|
|
unicode-segmentation = "1.12.0"
|
|
url = "2.5"
|
|
urlpattern = "0.3"
|
|
utf-8 = "0.7"
|
|
uuid = { version = "1.21.0", features = ["v4", "v5"] }
|
|
vello = "0.6"
|
|
vello_cpu = "0.0.4"
|
|
webdriver = "0.53.0"
|
|
webgpu_traits = { path = "components/shared/webgpu" }
|
|
webpki-roots = "1.0"
|
|
webrender = { version = "0.68", features = ["capture"] }
|
|
webrender_api = "0.68"
|
|
webxr-api = { path = "components/shared/webxr" }
|
|
wgpu-core = "26"
|
|
wgpu-types = "26"
|
|
winapi = "0.3"
|
|
windows-sys = "0.61"
|
|
winit = "0.30.12"
|
|
wio = "0.2"
|
|
wr_malloc_size_of = "0.2.2"
|
|
x25519-dalek = { version = "2.0.1", features = ["static_secrets"] }
|
|
xi-unicode = "0.3.0"
|
|
xml5ever = "0.38"
|
|
xpath = { path = "components/xpath" }
|
|
|
|
# RSA key generation could be very slow without compilation
|
|
# optimizations, in development mode. Without optimizations, WPT might
|
|
# consider RSA key generation tests fail due to timeout.
|
|
# Building with higher optimization levels can speed up the key
|
|
# generation process to avoid false negative result in those tests.
|
|
# More details: <https://docs.rs/rsa/0.9.8/rsa/index.html#example>
|
|
[profile.dev.package.num-bigint-dig]
|
|
opt-level = 3
|
|
|
|
# Force tikv-jemalloc-sys to build with at least -O1.
|
|
# This can help with build environments that force _FORTIFY_SOURCE, such as Nix.
|
|
# More details: <https://github.com/tikv/jemallocator/issues/108>
|
|
[profile.dev.package.tikv-jemalloc-sys]
|
|
opt-level = 1
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
debug-assertions = true
|
|
|
|
# Disk-space is limited in CI, so we disabled features that are not needed for code coverage.
|
|
# Locally using the default `dev` profile is perfectly fine.
|
|
[profile.coverage]
|
|
inherits = "dev"
|
|
incremental = false
|
|
debug = false
|
|
|
|
# A profile between `dev` and `release` which aims to offer a compromise between
|
|
# fast incremental rebuilds and runtime speed.
|
|
[profile.medium]
|
|
inherits = "release"
|
|
opt-level = 2
|
|
incremental = true
|
|
debug = "line-tables-only"
|
|
|
|
[profile.production]
|
|
inherits = "release"
|
|
debug-assertions = false
|
|
lto = true
|
|
codegen-units = 1
|
|
opt-level = "s"
|
|
|
|
[profile.production-stripped]
|
|
inherits = "production"
|
|
strip = true
|
|
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
debug-assertions = false
|
|
debug = true
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
[patch.crates-io]
|
|
# If you need to temporarily test Servo with a local fork of some upstream
|
|
# crate, add that here. Use the form:
|
|
#
|
|
# <crate> = { path = "/path/to/local/checkout" }
|
|
#
|
|
# For html5ever:
|
|
#
|
|
# html5ever = { path = "../html5ever/html5ever" }
|
|
# markup5ever = { path = "../html5ever/markup5ever" }
|
|
# web_atoms = { path = "../html5ever/web_atoms" }
|
|
# xml5ever = { path = "../html5ever/xml5ever" }
|
|
# tendril = { path = "../html5ever/tendril" }
|
|
#
|
|
# Or for Stylo:
|
|
#
|
|
# [patch."https://github.com/servo/stylo"]
|
|
# selectors = { path = "../stylo/selectors" }
|
|
# servo_arc = { path = "../stylo/servo_arc" }
|
|
# stylo = { path = "../stylo/style" }
|
|
# stylo_atoms = { path = "../stylo/stylo_atoms" }
|
|
# stylo_dom = { path = "../stylo/stylo_dom" }
|
|
# stylo_malloc_size_of = { path = "../stylo/malloc_size_of" }
|
|
# stylo_static_prefs = { path = "../stylo/stylo_static_prefs" }
|
|
# stylo_traits = { path = "../stylo/style_traits" }
|
|
#
|
|
# Or for WebRender:
|
|
#
|
|
# [patch."https://github.com/servo/webrender"]
|
|
# webrender = { path = "../webrender/webrender" }
|
|
# webrender_api = { path = "../webrender/webrender_api" }
|
|
# wr_malloc_size_of = { path = "../webrender/wr_malloc_size_of" }
|
|
#
|
|
# Or for another Git dependency:
|
|
#
|
|
# [patch."https://github.com/servo/<repository>"]
|
|
# <crate> = { path = "/path/to/local/checkout" }
|
|
#
|
|
# [patch."https://github.com/servo/rust-content-security-policy"]
|
|
# content-security-policy = { path = "../rust-content-security-policy" }
|
|
#
|
|
# Or for mozjs:
|
|
#
|
|
# mozjs = { path = "../mozjs/mozjs" }
|
|
# mozjs_sys = { path = "../mozjs/mozjs-sys" }
|
|
|
|
# Pending egui bumping their accesskit version: https://github.com/emilk/egui/pull/7850
|
|
# This is only used in servoshell.
|
|
# TODO: When these are no longer needed remove the exception in deny.toml as well.
|
|
egui = { git = "https://github.com/emilk/egui.git", rev = "5d8f393335e051785b4fd3af9ef92eda5b61177f" }
|
|
egui-winit = { git = "https://github.com/emilk/egui.git", rev = "5d8f393335e051785b4fd3af9ef92eda5b61177f" }
|