[workspace] resolver = "2" members = ["crates/beaver_p2p", "crates/beaver_shell"] # Copied from the main Cargo.toml to allow # workspace inheritance from component/ crates. [workspace.package] version = "0.1.0" edition = "2024" authors = ["The Servo Project Developers"] license = "MPL-2.0" publish = false description = "The Beaver User Agent" repository = "https://tangled.org/me.webbeef.org/beaver" 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.34", features = ["tokio-rustls-webpki-roots"] } atomic_refcell = "0.1.13" aws-lc-rs = { version = "1.15", default-features = false, features = ["aws-lc-sys"] } backtrace = "0.3" base64 = "0.22.1" base64ct = { version = "1.8", features = ["alloc"] } # bincode 1.3.3 is the last known good version of bincode 1. # The crate was declared finished and won't receive further updates by the author. # Since the git history was rewritten by the author, any bump of this crate should # be reviewed carefully by doing a manual diff based on the crates.io version, # before doing **any** bump to this dependency to rule out a supply chain attack. bincode = "=1.3.3" bitflags = "2.10" blurmac = { version = "0.1.0", path = "source/third_party/blurmac" } brotli = "8.0.2" bytemuck = "1" byteorder = "1.5" byte-slice-cast = "1.2.3" 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"] } content-security-policy = { version = "0.8.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" deny_public_fields = { package = "servo-deny-public-fields", version = "0.1.0", path = "source/components/deny_public_fields" } der = { version = "0.7", features = ["alloc", "derive"] } devtools = { package = "servo-devtools", version = "0.1.0", path = "source/components/devtools" } devtools_traits = { package = "servo-devtools-traits", path = "source/components/shared/devtools" } digest = "0.10" dom_struct = { package = "servo-dom-struct", version = "0.1.0", path = "source/components/dom_struct" } dpi = "0.1" dwrote = "0.11.5" ecdsa = "0.16" elliptic-curve = "0.13" embedder_traits = { package = "servo-embedder-traits", path = "source/components/shared/embedder" } encoding_rs = { version = "0.8", features = ["serde"] } env_logger = "0.11" euclid = "0.22" flate2 = "1.1" fonts = { package = "servo-fonts", version = "0.1.0", path = "source/components/fonts" } fonts_traits = { package = "servo-fonts-traits", path = "source/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.17.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 = "0.1.6" hkdf = "0.12" html5ever = "0.39" 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 = "source/components/hyper_serde" } icu_locid = "1.5.0" icu_properties = "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"] } inventory = { version = "0.3.24" } ipc-channel = "0.21" iroh = { version = "0.98", default-features = false, features = ["address-lookup-mdns", "tls-aws-lc-rs"] } iroh-persist = { git = "https://github.com/webbeef/iroh-persist.git", branch = "iroh-0.98" } itertools = "0.14" js = { package = "mozjs", version = "=0.15.11", default-features = false, features = ["libz-sys", "intl"] } jstraceable_derive = { package = "servo-jstraceable-derive", version = "0.1.0", path = "source/components/jstraceable_derive" } keyboard-types = { version = "0.8.3", features = ["serde", "webdriver"] } kurbo = { version = "0.12", features = ["euclid"] } layout = { package = "servo-layout", version = "0.1.0", path = "source/components/layout" } layout_api = { package = "servo-layout-api", path = "source/components/shared/layout" } libc = "0.2" log = "0.4.29" lru = "0.17" mach2 = "0.6" malloc_size_of = { package = "servo-malloc-size-of", path = "source/components/malloc_size_of" } malloc_size_of_derive = "0.1" markup5ever = "0.39" media = { package = "servo-media-thread", version = "0.1.0", path = "source/components/media/media-thread" } memmap2 = "0.9.9" metrics = { package = "servo-metrics", version = "0.1.0", path = "source/components/metrics" } 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 = { package = "servo-net", version = "0.1.0", path = "source/components/net" } net_traits = { package = "servo-net-traits", path = "source/components/shared/net" } nix = "0.30" nom = "8.0.0" nom-rfc8288 = "0.4.0" num-bigint-dig = "0.8" num-complex = "0.4.6" num-derive = "0.4.2" num-traits = "0.2" num_cpus = "1.17.0" ocb3 = "0.1.0" objc2 = "0.6.3" objc2-core-foundation = "0.3.2" objc2-core-graphics = "0.3.2" objc2-core-text = "0.3.2" openxr = "0.20" paint = { package = "servo-paint", version = "0.1.0", path = "source/components/paint" } paint_api = { package = "servo-paint-api", path = "source/components/shared/paint" } petname = "3.0" 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" pixels = { package = "servo-pixels", version = "0.1.0", path = "source/components/pixels" } pkcs8 = { version = "0.10", features = ["rand_core"] } postcard = { version = "1.1.3", default-features = false, features = ["use-std"] } proc-macro2 = "1" profile = { package = "servo-profile", version = "0.1.0", path = "source/components/profile" } profile_traits = { package = "servo-profile-traits", path = "source/components/shared/profile" } quote = "1" rand = "0.9" rangemap = "1.7.1" raw-window-handle = "0.6" rayon = "1" read-fonts = "0.35.0" regex = "1.12" resvg = "0.47.0" rsa = { version = "0.9.10", features = ["sha1", "sha2"] } rusqlite = "0.38" 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 = { package = "servo-script", path = "source/components/script" } script_bindings = { package = "servo-script-bindings", version = "0.1.0", path = "source/components/script_bindings" } script_traits = { package = "servo-script-traits", path = "source/components/shared/script" } sea-query = { version = "1.0.0-rc.30", 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 = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } serde = "1.0.228" serde_bytes = "0.11" serde_core = "1.0.226" serde_json = "1.0" servo = { version = "0.1.0", path = "source/components/servo", default-features = false } servo-allocator = { version = "0.1.0", path = "source/components/allocator" } servo-background-hang-monitor = { version = "0.1.0", path = "source/components/background_hang_monitor" } servo-background-hang-monitor-api = { version = "0.1.0", path = "source/components/shared/background_hang_monitor" } servo-base = { version = "0.1.0", path = "source/components/shared/base" } servo-bluetooth = { version = "0.1.0", path = "source/components/bluetooth" } servo-bluetooth-traits = { version = "0.1.0", path = "source/components/shared/bluetooth" } servo-canvas = { version = "0.1.0", path = "source/components/canvas" } servo-canvas-traits = { version = "0.1.0", path = "source/components/shared/canvas" } servo-config = { package = "servo-config", version = "0.1.0", path = "source/components/config" } servo-config-macro = { package = "servo-config-macro", version = "0.1.0", path = "source/components/config/macro" } servo-constellation = { version = "0.1.0", path = "source/components/constellation" } servo-constellation-traits = { version = "0.1.0", path = "source/components/shared/constellation" } servo-default-resources = { version = "0.1.0", path = "source/components/default-resources" } servo-geometry = { package = "servo-geometry", version = "0.1.0", path = "source/components/geometry" } servo-media = { path = "source/components/media/servo-media" } servo-media-audio = { version = "0.1.0", path = "source/components/media/audio" } servo-media-derive = { version = "0.1.0", path = "source/components/media/servo-media-derive" } servo-media-dummy = { path = "source/components/media/backends/dummy" } servo-media-gstreamer = { path = "source/components/media/backends/gstreamer" } servo-media-gstreamer-render = { version = "0.1.0", path = "source/components/media/backends/gstreamer/render" } servo-media-gstreamer-render-android = { version = "0.1.0", path = "source/components/media/backends/gstreamer/render-android" } servo-media-gstreamer-render-unix = { version = "0.1.0", path = "source/components/media/backends/gstreamer/render-unix" } servo-media-ohos = { version = "0.1.0", path = "source/components/media/backends/ohos" } servo-media-player = { version = "0.1.0", path = "source/components/media/player" } servo-media-streams = { version = "0.1.0", path = "source/components/media/streams" } servo-media-traits = { version = "0.1.0", path = "source/components/media/traits" } servo-media-webrtc = { version = "0.1.0", path = "source/components/media/webrtc" } servo-wakelock = { version = "0.1.0", path = "source/components/wakelock" } servo_allocator = { package = "servo-allocator", version = "0.1.0", path = "source/components/allocator" } servo-tracing = { path = "source/components/servo_tracing" } servo_arc = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } servo-url = { version = "0.1.0", path = "source/components/url" } sha1 = "0.10" sha2 = "0.10" sha3 = "0.10" speexdsp-resampler = "0.1.0" skrifa = "0.37.0" smallvec = { version = "1.15", features = ["serde", "union"] } storage = { package = "servo-storage", version = "0.1.0", path = "source/components/storage" } storage_traits = { package = "servo-storage-traits", path = "source/components/shared/storage" } string_cache = "0.9" strum = { version = "0.27", features = ["derive"] } stylo = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } stylo_atoms = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } stylo_config = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } stylo_dom = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } stylo_malloc_size_of = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } stylo_static_prefs = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } stylo_traits = { git = "https://github.com/servo/stylo", rev = "bfa746c957ce12bf12936e118b78a806d9ae0d66" } surfman = { version = "0.12.0", features = ["chains"] } syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] } synstructure = "0.13" taffy = { version = "0.10.1", 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" timers = { package = "servo-timers", version = "0.1.0", path = "source/components/timers" } 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.29" unicode-bidi = "0.3.18" unicode_categories = "0.1.1" unicode-properties = { version = "0.1.4", features = ["emoji"] } unicode-script = "0.5" unicode-segmentation = "1.12.0" url = "2.5" urlpattern = "0.5" utf-8 = "0.7" uuid = { version = "1.20.0", features = ["v4", "v5"] } vello = "0.6" vello_cpu = "0.0.4" web_atoms = "0.2" webdriver = "0.53.0" webgl = { package = "servo-webgl", version = "0.1.0", path = "source/components/webgl", default-features = false } webgpu = { package = "servo-webgpu", version = "0.1.0", path = "source/components/webgpu" } webgpu_traits = { package = "servo-webgpu-traits", path = "source/components/shared/webgpu" } webpki-roots = "1.0" webrender = { version = "0.68", features = ["capture"] } webrender_api = "0.68" webxr = { package = "servo-webxr", version = "0.1.0", path = "source/components/webxr" } webxr-api = { package = "servo-webxr-api", path = "source/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.39" xpath = { package = "servo-xpath", path = "source/components/xpath" } yuv = { version = "0.8.13", features = ["rayon"] } # 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: [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: [profile.dev.package.tikv-jemalloc-sys] opt-level = 1 [profile.release] opt-level = 3 [profile.production] inherits = "release" lto = true codegen-units = 1 opt-level = 3 strip = true [profile.profiling] inherits = "release" debug = true lto = "thin" codegen-units = 1 [patch.crates-io] url = { path = "crates/rust-url/url" } form_urlencoded = { path = "crates/rust-url/form_urlencoded" } percent-encoding = { path = "crates/rust-url/percent_encoding" } idna = { path = "crates/rust-url/idna" }