Rewild Your Web
web
browser
dweb
1[workspace]
2resolver = "2"
3members = ["htmlshell"]
4
5# Copied from the main Cargo.toml to allow
6# workspace inheritance from component/ crates.
7[workspace.package]
8version = "0.1.0"
9edition = "2024"
10authors = ["The Servo Project Developers"]
11license = "MPL-2.0"
12publish = false
13rust-version = "1.86.0"
14
15[workspace.dependencies]
16accesskit = { version = "0.21.1", features = ["serde"] }
17accountable-refcell = "0.2.2"
18aes = "0.8.4"
19aes-gcm = "0.10.3"
20aes-kw = { version = "0.2.1", features = ["alloc"] }
21app_units = "0.7"
22arboard = "3"
23argon2 = { version = "0.5", features = ["alloc"] }
24arrayvec = "0.7"
25async-tungstenite = { version = "0.32", features = ["tokio-rustls-webpki-roots"] }
26atomic_refcell = "0.1.13"
27aws-lc-rs = { version = "1.15", default-features = false, features = ["aws-lc-sys"] }
28background_hang_monitor_api = { path = "source/components/shared/background_hang_monitor" }
29backtrace = "0.3"
30base = { path = "source/components/shared/base" }
31base64 = "0.22.1"
32base64ct = { version = "1.8", features = ["alloc"] }
33# bincode 1.3.3 is the last known good version of bincode 1.
34# The crate was declared finished and won't receive further updates by the author.
35# Since the git history was rewritten by the author, any bump of this crate should
36# be reviewed carefully by doing a manual diff based on the crates.io version,
37# before doing **any** bump to this dependency to rule out a supply chain attack.
38bincode = "=1.3.3"
39bitflags = "2.10"
40bluetooth_traits = { path = "source/components/shared/bluetooth" }
41brotli = "8.0.2"
42bytemuck = "1"
43byteorder = "1.5"
44canvas_traits = { path = "source/components/shared/canvas" }
45cbc = "0.1.2"
46cfg-if = "1.0.4"
47chacha20poly1305 = "0.10"
48chardetng = "0.1"
49chrono = { version = "0.4", features = ["serde"] }
50cipher = { version = "0.4.4", features = ["alloc"] }
51constellation_traits = { path = "source/components/shared/constellation" }
52content-security-policy = { version = "0.6.0", features = ["serde"] }
53cookie = { package = "cookie", version = "0.18" }
54crossbeam-channel = "0.5"
55cssparser = { version = "0.36", features = ["serde"] }
56ctr = "0.9.2"
57data-url = "0.3"
58der = { version = "0.7", features = ["alloc", "derive"] }
59devtools_traits = { path = "source/components/shared/devtools" }
60digest = "0.10"
61dpi = "0.1"
62dwrote = "0.11.5"
63ecdsa = "0.16"
64elliptic-curve = "0.13"
65embedder_traits = { path = "source/components/shared/embedder" }
66encoding_rs = { version = "0.8", features = ["serde"] }
67env_logger = "0.11"
68euclid = "0.22"
69flate2 = "1.1"
70fonts_traits = { path = "source/components/shared/fonts" }
71freetype-sys = "0.20"
72gleam = "0.15"
73glib = "0.21"
74glib-sys = "0.21"
75glow = "0.16.0"
76gstreamer = { version = "0.24", features = ["v1_18"] }
77gstreamer-app = "0.24"
78gstreamer-audio = "0.24"
79gstreamer-base = "0.24"
80gstreamer-gl = "0.24"
81gstreamer-gl-egl = "0.24"
82gstreamer-gl-sys = "0.24"
83gstreamer-gl-wayland = "0.24"
84gstreamer-gl-x11 = "0.24"
85gstreamer-play = "0.24"
86gstreamer-sdp = "0.24"
87gstreamer-sys = "0.24"
88gstreamer-video = "0.24"
89gstreamer-webrtc = { version = "0.24", features = ["v1_18"] }
90harfbuzz-sys = "0.6.1"
91headers = "0.4"
92hitrace = "0.1.6"
93hkdf = "0.12"
94html5ever = "0.38"
95http = "1.4"
96http-body-util = "0.1"
97hyper = "1.8"
98hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "logging", "tls12", "webpki-tokio"] }
99hyper-util = { version = "0.1", features = ["client-legacy", "http2", "tokio", "client-proxy"] }
100hyper_serde = { path = "source/components/hyper_serde" }
101icu_locid = "1.5.0"
102icu_segmenter = "1.5.0"
103image = { version = "0.25", default-features = false, features = ["avif", "rayon", "bmp", "gif", "ico", "jpeg", "png", "webp"] }
104imsz = "0.4"
105indexmap = { version = "2.11.4", features = ["std"] }
106ipc-channel = "0.20.2"
107itertools = "0.14"
108js = { package = "mozjs", version = "=0.14.8", default-features = false, features = ["libz-sys", "intl"] }
109keyboard-types = { version = "0.8.3", features = ["serde", "webdriver"] }
110kurbo = { version = "0.12", features = ["euclid"] }
111layout_api = { path = "source/components/shared/layout" }
112libc = "0.2"
113log = "0.4.29"
114mach2 = "0.6"
115malloc_size_of = { package = "servo_malloc_size_of", path = "source/components/malloc_size_of" }
116malloc_size_of_derive = "0.1"
117markup5ever = "0.38"
118memmap2 = "0.9.9"
119mime = "0.3.13"
120mime-multipart-hyper1 = "0.10.0"
121mime_guess = "2.0.5"
122ml-dsa = "0.0.4"
123ml-kem = { version = "0.2", features = ["deterministic"] }
124mozangle = "0.5.3"
125net_traits = { path = "source/components/shared/net" }
126nix = "0.30"
127nom = "8.0.0"
128nom-rfc8288 = "0.4.0"
129num-bigint-dig = "0.8"
130num-derive = "0.4.2"
131num-traits = "0.2"
132num_cpus = "1.17.0"
133ocb3 = "0.1.0"
134objc2 = "0.6.3"
135objc2-core-foundation = "0.3.2"
136objc2-core-graphics = "0.3.2"
137objc2-core-text = "0.3.2"
138openxr = "0.20"
139paint_api = { path = "source/components/shared/paint" }
140p256 = { version = "0.13", features = ["ecdh"] }
141p384 = { version = "0.13", features = ["ecdh"] }
142p521 = { version = "0.13", features = ["ecdh"] }
143parking_lot = { version = "0.12", features = ["serde"] }
144peniko = "0.5"
145percent-encoding = "2.3"
146pkcs8 = { version = "0.10", features = ["rand_core"] }
147postcard = { version = "1.1.3", default-features = false, features = ["use-std"] }
148proc-macro2 = "1"
149profile_traits = { path = "source/components/shared/profile" }
150quote = "1"
151rand = "0.9"
152raw-window-handle = "0.6"
153rayon = "1"
154read-fonts = "0.35.0"
155regex = "1.12"
156resvg = "0.45.0"
157rsa = { version = "0.9.10", features = ["sha1", "sha2"] }
158rustc-hash = "2.1.1"
159rustls = { version = "0.23", default-features = false, features = ["logging", "std", "tls12"] }
160rustls-pki-types = "1.14"
161rustls-platform-verifier = "0.6.2"
162script_traits = { path = "source/components/shared/script" }
163sea-query = { version = "1.0.0-rc.30", default-features = false, features = ["backend-sqlite", "derive"] }
164sea-query-rusqlite = { version = "0.8.0-rc.15" }
165sec1 = "0.7"
166selectors = { git = "https://github.com/servo/stylo", rev = "3b46f3ef27eb14ca276b4bf3ff041a6c43d93827" }
167serde = "1.0.228"
168serde_bytes = "0.11"
169serde_core = "1.0.226"
170serde_json = "1.0"
171servo-media = { path = "source/components/media/servo-media" }
172servo-media-dummy = { path = "source/components/media/backends/dummy" }
173servo-media-gstreamer = { path = "source/components/media/backends/gstreamer" }
174servo-tracing = { path = "source/components/servo_tracing" }
175servo_arc = { git = "https://github.com/servo/stylo", rev = "3b46f3ef27eb14ca276b4bf3ff041a6c43d93827" }
176sha1 = "0.10"
177sha2 = "0.10"
178sha3 = "0.10"
179skrifa = "0.37.0"
180smallvec = { version = "1.15", features = ["serde", "union"] }
181storage_traits = { path = "source/components/shared/storage" }
182string_cache = "0.9"
183strum = { version = "0.27", features = ["derive"] }
184stylo = { git = "https://github.com/servo/stylo", rev = "3b46f3ef27eb14ca276b4bf3ff041a6c43d93827" }
185stylo_atoms = { git = "https://github.com/servo/stylo", rev = "3b46f3ef27eb14ca276b4bf3ff041a6c43d93827" }
186stylo_config = { git = "https://github.com/servo/stylo", rev = "3b46f3ef27eb14ca276b4bf3ff041a6c43d93827" }
187stylo_dom = { git = "https://github.com/servo/stylo", rev = "3b46f3ef27eb14ca276b4bf3ff041a6c43d93827" }
188stylo_malloc_size_of = { git = "https://github.com/servo/stylo", rev = "3b46f3ef27eb14ca276b4bf3ff041a6c43d93827" }
189stylo_traits = { git = "https://github.com/servo/stylo", rev = "3b46f3ef27eb14ca276b4bf3ff041a6c43d93827" }
190surfman = { version = "0.11.0", features = ["chains"] }
191syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] }
192synstructure = "0.13"
193taffy = { version = "0.9.2", default-features = false, features = ["calc", "detailed_layout_info", "grid", "std"] }
194tendril = { version = "0.5", features = ["encoding_rs"] }
195tikv-jemalloc-sys = "0.6.1"
196tikv-jemallocator = "0.6.1"
197time = { package = "time", version = "0.3", features = ["large-dates", "local-offset", "serde"] }
198tokio = "1"
199tokio-rustls = { version = "0.26", default-features = false, features = ["logging"] }
200tokio-stream = "0.1"
201tokio-util = { version = "0.7.18", default-features = false }
202tower = { version = "0.5", default-features = false, features = ["util"] }
203tracing = "0.1.44"
204tracing-perfetto = "0.1.5"
205tracing-subscriber = "0.3.22"
206tungstenite = "0.28"
207unicode-bidi = "0.3.18"
208unicode-properties = { version = "0.1.4", features = ["emoji"] }
209unicode-script = "0.5"
210unicode-segmentation = "1.12.0"
211url = "2.5"
212urlpattern = "0.3"
213utf-8 = "0.7"
214uuid = { version = "1.20.0", features = ["v4", "v5"] }
215vello = "0.6"
216vello_cpu = "0.0.4"
217webdriver = "0.53.0"
218webgpu_traits = { path = "source/components/shared/webgpu" }
219webpki-roots = "1.0"
220webrender = { version = "0.68", features = ["capture"] }
221webrender_api = "0.68"
222webxr-api = { path = "source/components/shared/webxr" }
223wgpu-core = "26"
224wgpu-types = "26"
225winapi = "0.3"
226windows-sys = "0.61"
227winit = "0.30.12"
228wio = "0.2"
229wr_malloc_size_of = "0.2.2"
230x25519-dalek = { version = "2.0.1", features = ["static_secrets"] }
231xi-unicode = "0.3.0"
232xml5ever = "0.38"
233xpath = { path = "source/components/xpath" }
234
235# RSA key generation could be very slow without compilation
236# optimizations, in development mode. Without optimizations, WPT might
237# consider RSA key generation tests fail due to timeout.
238# Building with higher optimization levels can speed up the key
239# generation process to avoid false negative result in those tests.
240# More details: <https://docs.rs/rsa/0.9.8/rsa/index.html#example>
241[profile.dev.package.num-bigint-dig]
242opt-level = 3
243
244# Force tikv-jemalloc-sys to build with at least -O1.
245# This can help with build environments that force _FORTIFY_SOURCE, such as Nix.
246# More details: <https://github.com/tikv/jemallocator/issues/108>
247[profile.dev.package.tikv-jemalloc-sys]
248opt-level = 1
249
250[profile.release]
251opt-level = 3
252debug-assertions = true
253
254[profile.production]
255inherits = "release"
256debug-assertions = false
257lto = true
258codegen-units = 1
259opt-level = "s"
260
261[profile.production-stripped]
262inherits = "production"
263strip = true
264
265[profile.profiling]
266inherits = "release"
267debug-assertions = false
268debug = true
269lto = "thin"
270codegen-units = 1