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"
73glow = "0.16.0"
74gstreamer = { version = "0.24", features = ["v1_18"] }
75gstreamer-base = "0.24"
76gstreamer-gl = "0.24"
77gstreamer-gl-sys = "0.24"
78gstreamer-sys = "0.24"
79gstreamer-video = "0.24"
80harfbuzz-sys = "0.6.1"
81headers = "0.4"
82hitrace = "0.1.6"
83hkdf = "0.12"
84html5ever = "0.38"
85http = "1.4"
86http-body-util = "0.1"
87hyper = "1.8"
88hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "logging", "tls12", "webpki-tokio"] }
89hyper-util = { version = "0.1", features = ["client-legacy", "http2", "tokio", "client-proxy"] }
90hyper_serde = { path = "source/components/hyper_serde" }
91icu_locid = "1.5.0"
92icu_segmenter = "1.5.0"
93image = { version = "0.25", default-features = false, features = ["avif", "rayon", "bmp", "gif", "ico", "jpeg", "png", "webp"] }
94imsz = "0.4"
95indexmap = { version = "2.11.4", features = ["std"] }
96ipc-channel = "0.20.2"
97itertools = "0.14"
98js = { package = "mozjs", version = "=0.14.8", default-features = false, features = ["libz-sys", "intl"] }
99keyboard-types = { version = "0.8.3", features = ["serde", "webdriver"] }
100kurbo = { version = "0.12", features = ["euclid"] }
101layout_api = { path = "source/components/shared/layout" }
102libc = "0.2"
103log = "0.4.29"
104mach2 = "0.6"
105malloc_size_of = { package = "servo_malloc_size_of", path = "source/components/malloc_size_of" }
106malloc_size_of_derive = "0.1"
107markup5ever = "0.38"
108memmap2 = "0.9.9"
109mime = "0.3.13"
110mime_guess = "2.0.5"
111ml-dsa = "0.0.4"
112ml-kem = { version = "0.2", features = ["deterministic"] }
113mozangle = "0.5.3"
114net_traits = { path = "source/components/shared/net" }
115nix = "0.30"
116nom = "8.0.0"
117nom-rfc8288 = "0.4.0"
118num-bigint-dig = "0.8"
119num-derive = "0.4.2"
120num-traits = "0.2"
121num_cpus = "1.17.0"
122ocb3 = "0.1.0"
123openxr = "0.20"
124paint_api = { path = "source/components/shared/paint" }
125p256 = { version = "0.13", features = ["ecdh"] }
126p384 = { version = "0.13", features = ["ecdh"] }
127p521 = { version = "0.13", features = ["ecdh"] }
128parking_lot = { version = "0.12", features = ["serde"] }
129peniko = "0.5"
130percent-encoding = "2.3"
131pkcs8 = { version = "0.10", features = ["rand_core"] }
132postcard = { version = "1.1.3", default-features = false, features = ["use-std"] }
133proc-macro2 = "1"
134profile_traits = { path = "source/components/shared/profile" }
135quote = "1"
136rand = "0.9"
137raw-window-handle = "0.6"
138rayon = "1"
139read-fonts = "0.35.0"
140regex = "1.12"
141resvg = "0.45.0"
142rsa = { version = "0.9.10", features = ["sha1", "sha2"] }
143rustc-hash = "2.1.1"
144rustls = { version = "0.23", default-features = false, features = ["logging", "std", "tls12"] }
145rustls-pki-types = "1.14"
146rustls-platform-verifier = "0.6.2"
147script_traits = { path = "source/components/shared/script" }
148sea-query = { version = "1.0.0-rc.30", default-features = false, features = ["backend-sqlite", "derive"] }
149sea-query-rusqlite = { version = "0.8.0-rc.15" }
150sec1 = "0.7"
151selectors = { git = "https://github.com/servo/stylo", rev = "63d8ef5c546deac25ed57e79b56ce3a887751a14" }
152serde = "1.0.228"
153serde_bytes = "0.11"
154serde_core = "1.0.226"
155serde_json = "1.0"
156servo-media = { git = "https://github.com/servo/media", rev = "f384dbc4ff8b5c6f8db2c763306cbe2281d66391" }
157servo-media-dummy = { git = "https://github.com/servo/media", rev = "f384dbc4ff8b5c6f8db2c763306cbe2281d66391" }
158servo-media-gstreamer = { git = "https://github.com/servo/media", rev = "f384dbc4ff8b5c6f8db2c763306cbe2281d66391" }
159servo-tracing = { path = "source/components/servo_tracing" }
160servo_arc = { git = "https://github.com/servo/stylo", rev = "63d8ef5c546deac25ed57e79b56ce3a887751a14" }
161sha1 = "0.10"
162sha2 = "0.10"
163sha3 = "0.10"
164skrifa = "0.37.0"
165smallvec = { version = "1.15", features = ["serde", "union"] }
166storage_traits = { path = "source/components/shared/storage" }
167string_cache = "0.9"
168strum = { version = "0.27", features = ["derive"] }
169stylo = { git = "https://github.com/servo/stylo", rev = "63d8ef5c546deac25ed57e79b56ce3a887751a14" }
170stylo_atoms = { git = "https://github.com/servo/stylo", rev = "63d8ef5c546deac25ed57e79b56ce3a887751a14" }
171stylo_config = { git = "https://github.com/servo/stylo", rev = "63d8ef5c546deac25ed57e79b56ce3a887751a14" }
172stylo_dom = { git = "https://github.com/servo/stylo", rev = "63d8ef5c546deac25ed57e79b56ce3a887751a14" }
173stylo_malloc_size_of = { git = "https://github.com/servo/stylo", rev = "63d8ef5c546deac25ed57e79b56ce3a887751a14" }
174stylo_traits = { git = "https://github.com/servo/stylo", rev = "63d8ef5c546deac25ed57e79b56ce3a887751a14" }
175surfman = { version = "0.11.0", features = ["chains"] }
176syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] }
177synstructure = "0.13"
178taffy = { version = "0.9.2", default-features = false, features = ["calc", "detailed_layout_info", "grid", "std"] }
179tendril = { version = "0.5", features = ["encoding_rs"] }
180tikv-jemalloc-sys = "0.6.1"
181tikv-jemallocator = "0.6.1"
182time = { package = "time", version = "0.3", features = ["large-dates", "local-offset", "serde"] }
183tokio = "1"
184tokio-rustls = { version = "0.26", default-features = false, features = ["logging"] }
185tokio-stream = "0.1"
186tokio-util = { version = "0.7.18", default-features = false }
187tower = { version = "0.5", default-features = false, features = ["util"] }
188tracing = "0.1.44"
189tracing-perfetto = "0.1.5"
190tracing-subscriber = "0.3.22"
191tungstenite = "0.28"
192unicode-bidi = "0.3.18"
193unicode-properties = { version = "0.1.4", features = ["emoji"] }
194unicode-script = "0.5"
195unicode-segmentation = "1.12.0"
196url = "2.5"
197urlpattern = "0.3"
198utf-8 = "0.7"
199uuid = { version = "1.20.0", features = ["v4", "v5"] }
200vello = "0.6"
201vello_cpu = "0.0.4"
202webdriver = "0.53.0"
203webgpu_traits = { path = "source/components/shared/webgpu" }
204webpki-roots = "1.0"
205webrender = { version = "0.68", features = ["capture"] }
206webrender_api = "0.68"
207webxr-api = { path = "source/components/shared/webxr" }
208wgpu-core = "26"
209wgpu-types = "26"
210winapi = "0.3"
211windows-sys = "0.61"
212winit = "0.30.12"
213wio = "0.2"
214wr_malloc_size_of = "0.2.2"
215x25519-dalek = { version = "2.0.1", features = ["static_secrets"] }
216xi-unicode = "0.3.0"
217xml5ever = "0.38"
218xpath = { path = "source/components/xpath" }
219
220# RSA key generation could be very slow without compilation
221# optimizations, in development mode. Without optimizations, WPT might
222# consider RSA key generation tests fail due to timeout.
223# Building with higher optimization levels can speed up the key
224# generation process to avoid false negative result in those tests.
225# More details: <https://docs.rs/rsa/0.9.8/rsa/index.html#example>
226[profile.dev.package.num-bigint-dig]
227opt-level = 3
228
229# Force tikv-jemalloc-sys to build with at least -O1.
230# This can help with build environments that force _FORTIFY_SOURCE, such as Nix.
231# More details: <https://github.com/tikv/jemallocator/issues/108>
232[profile.dev.package.tikv-jemalloc-sys]
233opt-level = 1
234
235[profile.release]
236opt-level = 3
237debug-assertions = true
238
239[profile.production]
240inherits = "release"
241debug-assertions = false
242lto = true
243codegen-units = 1
244opt-level = "s"
245
246[profile.production-stripped]
247inherits = "production"
248strip = true
249
250[profile.profiling]
251inherits = "release"
252debug-assertions = false
253debug = true
254lto = "thin"
255codegen-units = 1