forked from
me.webbeef.org/browser.html
Rewild Your Web
1[workspace]
2resolver = "2"
3members = ["crates/beaver_p2p", "crates/beaver_shell"]
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
13description = "The Beaver User Agent"
14repository = "https://tangled.org/me.webbeef.org/beaver"
15rust-version = "1.86.0"
16
17[workspace.dependencies]
18accesskit = { version = "0.24.0", features = ["serde"] }
19accountable-refcell = "0.2.2"
20aes = "0.8.4"
21aes-gcm = "0.10.3"
22aes-kw = { version = "0.2.1", features = ["alloc"] }
23app_units = "0.7"
24arboard = "3"
25argon2 = { version = "0.5", features = ["alloc"] }
26arrayvec = "0.7"
27async-tungstenite = { version = "0.34", features = ["tokio-rustls-webpki-roots"] }
28atomic_refcell = "0.1.13"
29aws-lc-rs = { version = "1.15", default-features = false, features = ["aws-lc-sys"] }
30backtrace = "0.3"
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"
40blurmac = { version = "0.1.0", path = "source/third_party/blurmac" }
41brotli = "8.0.2"
42bytemuck = "1"
43byteorder = "1.5"
44byte-slice-cast = "1.2.3"
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"] }
51content-security-policy = { version = "0.8.0", features = ["serde"] }
52cookie = { package = "cookie", version = "0.18" }
53crossbeam-channel = "0.5"
54cssparser = { version = "0.36", features = ["serde"] }
55ctr = "0.9.2"
56data-url = "0.3"
57deny_public_fields = { package = "servo-deny-public-fields", version = "0.1.0", path = "source/components/deny_public_fields" }
58der = { version = "0.7", features = ["alloc", "derive"] }
59devtools = { package = "servo-devtools", version = "0.1.0", path = "source/components/devtools" }
60devtools_traits = { package = "servo-devtools-traits", path = "source/components/shared/devtools" }
61digest = "0.10"
62dom_struct = { package = "servo-dom-struct", version = "0.1.0", path = "source/components/dom_struct" }
63dpi = "0.1"
64dwrote = "0.11.5"
65ecdsa = "0.16"
66elliptic-curve = "0.13"
67embedder_traits = { package = "servo-embedder-traits", path = "source/components/shared/embedder" }
68encoding_rs = { version = "0.8", features = ["serde"] }
69env_logger = "0.11"
70euclid = "0.22"
71flate2 = "1.1"
72fonts = { package = "servo-fonts", version = "0.1.0", path = "source/components/fonts" }
73fonts_traits = { package = "servo-fonts-traits", path = "source/components/shared/fonts" }
74freetype-sys = "0.20"
75futures = { version = "0.3", default-features = false }
76futures-core = { version = "0.3", default-features = false }
77futures-util = { version = "0.3", default-features = false }
78gleam = "0.15"
79glib = "0.22"
80glib-sys = "0.22"
81glow = "0.17.0"
82gstreamer = { version = "0.25", features = ["v1_18"] }
83gstreamer-app = "0.25"
84gstreamer-audio = "0.25"
85gstreamer-base = "0.25"
86gstreamer-gl = "0.25"
87gstreamer-gl-egl = "0.25"
88gstreamer-gl-sys = "0.25"
89gstreamer-gl-wayland = "0.25"
90gstreamer-gl-x11 = "0.25"
91gstreamer-play = "0.25"
92gstreamer-sdp = "0.25"
93gstreamer-sys = "0.25"
94gstreamer-video = "0.25"
95gstreamer-webrtc = { version = "0.25", features = ["v1_18"] }
96harfbuzz-sys = "0.6.1"
97headers = "0.4"
98hitrace = "0.1.6"
99hkdf = "0.12"
100html5ever = "0.39"
101http = "1.4"
102http-body-util = "0.1"
103hyper = "1.8"
104hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "logging", "tls12", "webpki-tokio"] }
105hyper-util = { version = "0.1", features = ["client-legacy", "http2", "tokio", "client-proxy"] }
106hyper_serde = { package = "servo-hyper-serde", path = "source/components/hyper_serde" }
107icu_locid = "1.5.0"
108icu_properties = "1.5.0"
109icu_segmenter = "1.5.0"
110image = { version = "0.25", default-features = false, features = ["avif", "rayon", "bmp", "gif", "ico", "jpeg", "png", "webp"] }
111imsz = "0.4"
112indexmap = { version = "2.11.4", features = ["std"] }
113inventory = { version = "0.3.24" }
114ipc-channel = "0.21"
115iroh = { version = "0.98", default-features = false, features = ["address-lookup-mdns", "tls-aws-lc-rs"] }
116iroh-persist = { git = "https://github.com/webbeef/iroh-persist.git", branch = "iroh-0.98" }
117itertools = "0.14"
118js = { package = "mozjs", version = "=0.15.11", default-features = false, features = ["libz-sys", "intl"] }
119jstraceable_derive = { package = "servo-jstraceable-derive", version = "0.1.0", path = "source/components/jstraceable_derive" }
120keyboard-types = { version = "0.8.3", features = ["serde", "webdriver"] }
121kurbo = { version = "0.12", features = ["euclid"] }
122layout = { package = "servo-layout", version = "0.1.0", path = "source/components/layout" }
123layout_api = { package = "servo-layout-api", path = "source/components/shared/layout" }
124libc = "0.2"
125log = "0.4.29"
126lru = "0.17"
127mach2 = "0.6"
128malloc_size_of = { package = "servo-malloc-size-of", path = "source/components/malloc_size_of" }
129malloc_size_of_derive = "0.1"
130markup5ever = "0.39"
131media = { package = "servo-media-thread", version = "0.1.0", path = "source/components/media/media-thread" }
132memmap2 = "0.9.9"
133metrics = { package = "servo-metrics", version = "0.1.0", path = "source/components/metrics" }
134mime = "0.3.13"
135mime-multipart-hyper1 = "0.10.0"
136mime_guess = "2.0.5"
137ml-dsa = "0.0.4"
138ml-kem = { version = "0.2", features = ["deterministic"] }
139mozangle = "0.5.3"
140net = { package = "servo-net", version = "0.1.0", path = "source/components/net" }
141net_traits = { package = "servo-net-traits", path = "source/components/shared/net" }
142nix = "0.30"
143nom = "8.0.0"
144nom-rfc8288 = "0.4.0"
145num-bigint-dig = "0.8"
146num-complex = "0.4.6"
147num-derive = "0.4.2"
148num-traits = "0.2"
149num_cpus = "1.17.0"
150ocb3 = "0.1.0"
151objc2 = "0.6.3"
152objc2-core-foundation = "0.3.2"
153objc2-core-graphics = "0.3.2"
154objc2-core-text = "0.3.2"
155openxr = "0.20"
156paint = { package = "servo-paint", version = "0.1.0", path = "source/components/paint" }
157paint_api = { package = "servo-paint-api", path = "source/components/shared/paint" }
158petname = "3.0"
159p256 = { version = "0.13", features = ["ecdh"] }
160p384 = { version = "0.13", features = ["ecdh"] }
161p521 = { version = "0.13", features = ["ecdh"] }
162parking_lot = { version = "0.12", features = ["serde"] }
163peniko = "0.5"
164percent-encoding = "2.3"
165pixels = { package = "servo-pixels", version = "0.1.0", path = "source/components/pixels" }
166pkcs8 = { version = "0.10", features = ["rand_core"] }
167postcard = { version = "1.1.3", default-features = false, features = ["use-std"] }
168proc-macro2 = "1"
169profile = { package = "servo-profile", version = "0.1.0", path = "source/components/profile" }
170profile_traits = { package = "servo-profile-traits", path = "source/components/shared/profile" }
171quote = "1"
172rand = "0.9"
173rangemap = "1.7.1"
174raw-window-handle = "0.6"
175rayon = "1"
176read-fonts = "0.35.0"
177regex = "1.12"
178resvg = "0.47.0"
179rsa = { version = "0.9.10", features = ["sha1", "sha2"] }
180rusqlite = "0.38"
181rustc-hash = "2.1.1"
182rustls = { version = "0.23", default-features = false, features = ["logging", "std", "tls12"] }
183rustls-pki-types = "1.14"
184rustls-platform-verifier = "0.6.2"
185script = { package = "servo-script", path = "source/components/script" }
186script_bindings = { package = "servo-script-bindings", version = "0.1.0", path = "source/components/script_bindings" }
187script_traits = { package = "servo-script-traits", path = "source/components/shared/script" }
188sea-query = { version = "1.0.0-rc.30", default-features = false, features = ["backend-sqlite", "derive"] }
189sea-query-rusqlite = { version = "0.8.0-rc.15" }
190sec1 = "0.7"
191selectors = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
192serde = "1.0.228"
193serde_bytes = "0.11"
194serde_core = "1.0.226"
195serde_json = "1.0"
196servo = { version = "0.1.0", path = "source/components/servo", default-features = false }
197servo-allocator = { version = "0.1.0", path = "source/components/allocator" }
198servo-background-hang-monitor = { version = "0.1.0", path = "source/components/background_hang_monitor" }
199servo-background-hang-monitor-api = { version = "0.1.0", path = "source/components/shared/background_hang_monitor" }
200servo-base = { version = "0.1.0", path = "source/components/shared/base" }
201servo-bluetooth = { version = "0.1.0", path = "source/components/bluetooth" }
202servo-bluetooth-traits = { version = "0.1.0", path = "source/components/shared/bluetooth" }
203servo-canvas = { version = "0.1.0", path = "source/components/canvas" }
204servo-canvas-traits = { version = "0.1.0", path = "source/components/shared/canvas" }
205servo-config = { package = "servo-config", version = "0.1.0", path = "source/components/config" }
206servo-config-macro = { package = "servo-config-macro", version = "0.1.0", path = "source/components/config/macro" }
207servo-constellation = { version = "0.1.0", path = "source/components/constellation" }
208servo-constellation-traits = { version = "0.1.0", path = "source/components/shared/constellation" }
209servo-default-resources = { version = "0.1.0", path = "source/components/default-resources" }
210servo-geometry = { package = "servo-geometry", version = "0.1.0", path = "source/components/geometry" }
211servo-media = { path = "source/components/media/servo-media" }
212servo-media-audio = { version = "0.1.0", path = "source/components/media/audio" }
213servo-media-derive = { version = "0.1.0", path = "source/components/media/servo-media-derive" }
214servo-media-dummy = { path = "source/components/media/backends/dummy" }
215servo-media-gstreamer = { path = "source/components/media/backends/gstreamer" }
216servo-media-gstreamer-render = { version = "0.1.0", path = "source/components/media/backends/gstreamer/render" }
217servo-media-gstreamer-render-android = { version = "0.1.0", path = "source/components/media/backends/gstreamer/render-android" }
218servo-media-gstreamer-render-unix = { version = "0.1.0", path = "source/components/media/backends/gstreamer/render-unix" }
219servo-media-ohos = { version = "0.1.0", path = "source/components/media/backends/ohos" }
220servo-media-player = { version = "0.1.0", path = "source/components/media/player" }
221servo-media-streams = { version = "0.1.0", path = "source/components/media/streams" }
222servo-media-traits = { version = "0.1.0", path = "source/components/media/traits" }
223servo-media-webrtc = { version = "0.1.0", path = "source/components/media/webrtc" }
224servo-wakelock = { version = "0.1.0", path = "source/components/wakelock" }
225servo_allocator = { package = "servo-allocator", version = "0.1.0", path = "source/components/allocator" }
226servo-tracing = { path = "source/components/servo_tracing" }
227servo_arc = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
228servo-url = { version = "0.1.0", path = "source/components/url" }
229sha1 = "0.10"
230sha2 = "0.10"
231sha3 = "0.10"
232speexdsp-resampler = "0.1.0"
233skrifa = "0.37.0"
234smallvec = { version = "1.15", features = ["serde", "union"] }
235storage = { package = "servo-storage", version = "0.1.0", path = "source/components/storage" }
236storage_traits = { package = "servo-storage-traits", path = "source/components/shared/storage" }
237string_cache = "0.9"
238strum = { version = "0.27", features = ["derive"] }
239stylo = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
240stylo_atoms = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
241stylo_config = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
242stylo_dom = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
243stylo_malloc_size_of = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
244stylo_static_prefs = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
245stylo_traits = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" }
246surfman = { version = "0.12.0", features = ["chains"] }
247syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] }
248synstructure = "0.13"
249taffy = { version = "0.10.1", default-features = false, features = ["calc", "detailed_layout_info", "grid", "std"] }
250tendril = { version = "0.5", features = ["encoding_rs"] }
251tikv-jemalloc-sys = "0.6.1"
252tikv-jemallocator = "0.6.1"
253timers = { package = "servo-timers", version = "0.1.0", path = "source/components/timers" }
254time = { package = "time", version = "0.3", features = ["large-dates", "local-offset", "serde"] }
255tokio = "1"
256tokio-rustls = { version = "0.26", default-features = false, features = ["logging"] }
257tokio-stream = "0.1"
258tokio-util = { version = "0.7.18", default-features = false }
259tower = { version = "0.5", default-features = false, features = ["util"] }
260tracing = "0.1.44"
261tracing-perfetto = "0.1.5"
262tracing-subscriber = "0.3.22"
263tungstenite = "0.29"
264unicode-bidi = "0.3.18"
265unicode_categories = "0.1.1"
266unicode-properties = { version = "0.1.4", features = ["emoji"] }
267unicode-script = "0.5"
268unicode-segmentation = "1.12.0"
269url = "2.5"
270urlpattern = "0.5"
271utf-8 = "0.7"
272uuid = { version = "1.20.0", features = ["v4", "v5"] }
273vello = "0.6"
274vello_cpu = "0.0.4"
275web_atoms = "0.2"
276webdriver = "0.53.0"
277webgl = { package = "servo-webgl", version = "0.1.0", path = "source/components/webgl", default-features = false }
278webgpu = { package = "servo-webgpu", version = "0.1.0", path = "source/components/webgpu" }
279webgpu_traits = { package = "servo-webgpu-traits", path = "source/components/shared/webgpu" }
280webpki-roots = "1.0"
281webrender = { version = "0.68", features = ["capture"] }
282webrender_api = "0.68"
283webxr = { package = "servo-webxr", version = "0.1.0", path = "source/components/webxr" }
284webxr-api = { package = "servo-webxr-api", path = "source/components/shared/webxr" }
285wgpu-core = "26"
286wgpu-types = "26"
287winapi = "0.3"
288windows-sys = "0.61"
289winit = "0.30.12"
290wio = "0.2"
291wr_malloc_size_of = "0.2.2"
292x25519-dalek = { version = "2.0.1", features = ["static_secrets"] }
293xi-unicode = "0.3.0"
294xml5ever = "0.39"
295xpath = { package = "servo-xpath", path = "source/components/xpath" }
296yuv = { version = "0.8.13", features = ["rayon"] }
297
298# RSA key generation could be very slow without compilation
299# optimizations, in development mode. Without optimizations, WPT might
300# consider RSA key generation tests fail due to timeout.
301# Building with higher optimization levels can speed up the key
302# generation process to avoid false negative result in those tests.
303# More details: <https://docs.rs/rsa/0.9.8/rsa/index.html#example>
304[profile.dev.package.num-bigint-dig]
305opt-level = 3
306
307# Force tikv-jemalloc-sys to build with at least -O1.
308# This can help with build environments that force _FORTIFY_SOURCE, such as Nix.
309# More details: <https://github.com/tikv/jemallocator/issues/108>
310[profile.dev.package.tikv-jemalloc-sys]
311opt-level = 1
312
313[profile.release]
314opt-level = 3
315
316[profile.production]
317inherits = "release"
318lto = true
319codegen-units = 1
320opt-level = 3
321strip = true
322
323[profile.profiling]
324inherits = "release"
325debug = true
326lto = "thin"
327codegen-units = 1
328
329[patch.crates-io]
330url = { path = "crates/rust-url/url" }
331form_urlencoded = { path = "crates/rust-url/form_urlencoded" }
332percent-encoding = { path = "crates/rust-url/percent_encoding" }
333idna = { path = "crates/rust-url/idna" }