mirror of
https://github.com/servo/servo
synced 2026-04-25 17:15:48 +02:00
This is a preparation for publishing to crates.io. Changes include: - Add `servo-` prefixes to avoid name collisions on crates.io - Use `-` instead of `_` in package names. - Rename the crates to their original names in Cargo.toml, to keep the diff minimal - Rename `media` to `servo-media-thread` to avoid name collision with `servo-media` (originally from the media repository). This is an outcome of the previous discussion at [#general > Switch remaining git dependencies to crates.io](https://servo.zulipchat.com/#narrow/channel/263398-general/topic/Switch.20remaining.20git.20dependencies.20to.20crates.2Eio/with/576336288) Testing: This should be mostly covered by our CI, but some amount of breakage is to be expected, since some package names could still be referenced from scripts which are not tested or run in CI. [mach try run](https://github.com/jschwe/servo/actions/runs/22502945949) --------- Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
346 lines
13 KiB
TOML
346 lines
13 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.33", 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 = { package = "servo-background-hang-monitor-api", path = "components/shared/background_hang_monitor" }
|
|
backtrace = "0.3"
|
|
base = { package = "servo-base", path = "components/shared/base" }
|
|
base64 = "0.22.1"
|
|
base64ct = { version = "1.8", features = ["alloc"] }
|
|
bitflags = "2.11"
|
|
bluetooth_traits = { package = "servo-bluetooth-traits", path = "components/shared/bluetooth" }
|
|
brotli = "8.0.2"
|
|
bytemuck = "1"
|
|
byteorder = "1.5"
|
|
canvas_traits = { package = "servo-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 = { package = "servo-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 = { package = "servo-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 = { package = "servo-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 = { package = "servo-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.22"
|
|
glib-sys = "0.22"
|
|
glow = "0.16.0"
|
|
gstreamer = { version = "0.25", features = ["v1_18"] }
|
|
gstreamer-app = "0.25"
|
|
gstreamer-audio = "0.25"
|
|
gstreamer-base = "0.25"
|
|
gstreamer-gl = "0.25"
|
|
gstreamer-gl-egl = "0.25"
|
|
gstreamer-gl-sys = "0.25"
|
|
gstreamer-gl-wayland = "0.25"
|
|
gstreamer-gl-x11 = "0.25"
|
|
gstreamer-play = "0.25"
|
|
gstreamer-sdp = "0.25"
|
|
gstreamer-sys = "0.25"
|
|
gstreamer-video = "0.25"
|
|
gstreamer-webrtc = { version = "0.25", 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 = { package = "servo-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.1", default-features = false, features = ["libz-sys", "intl"] }
|
|
keyboard-types = { version = "0.8.3", features = ["serde", "webdriver"] }
|
|
kurbo = { version = "0.12", features = ["euclid"] }
|
|
layout_api = { package = "servo-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 = { package = "servo-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.4"
|
|
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 = { package = "servo-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 = { package = "servo-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 = { package = "servo-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 = "2f131eb1909c6193a7cfae22e49f288fe9df4fbb" }
|
|
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 = "2f131eb1909c6193a7cfae22e49f288fe9df4fbb" }
|
|
sha1 = "0.10"
|
|
sha2 = "0.10"
|
|
sha3 = "0.10"
|
|
skrifa = "0.37.0"
|
|
smallvec = { version = "1.15", features = ["serde", "union"] }
|
|
storage_traits = { package = "servo-storage-traits", path = "components/shared/storage" }
|
|
string_cache = "0.9"
|
|
strum = { version = "0.27", features = ["derive"] }
|
|
stylo = { git = "https://github.com/servo/stylo", rev = "2f131eb1909c6193a7cfae22e49f288fe9df4fbb" }
|
|
stylo_atoms = { git = "https://github.com/servo/stylo", rev = "2f131eb1909c6193a7cfae22e49f288fe9df4fbb" }
|
|
stylo_dom = { git = "https://github.com/servo/stylo", rev = "2f131eb1909c6193a7cfae22e49f288fe9df4fbb" }
|
|
stylo_malloc_size_of = { git = "https://github.com/servo/stylo", rev = "2f131eb1909c6193a7cfae22e49f288fe9df4fbb" }
|
|
stylo_static_prefs = { git = "https://github.com/servo/stylo", rev = "2f131eb1909c6193a7cfae22e49f288fe9df4fbb" }
|
|
stylo_traits = { git = "https://github.com/servo/stylo", rev = "2f131eb1909c6193a7cfae22e49f288fe9df4fbb" }
|
|
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 = { package = "servo-webgpu-traits", path = "components/shared/webgpu" }
|
|
webpki-roots = "1.0"
|
|
webrender = { version = "0.68", features = ["capture"] }
|
|
webrender_api = "0.68"
|
|
webxr-api = { package = "servo-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 = { package = "servo-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 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" }
|
|
#
|
|
# 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" }
|