servo-script 0.6.0

A component of the servo web-engine.
[package]
name = "servo-script"
build = "build.rs"
version.workspace = true
authors.workspace = true
license.workspace = true
edition.workspace = true
publish.workspace = true
rust-version.workspace = true
repository.workspace = true
description.workspace = true

[lib]
name = "script"
path = "lib.rs"

[features]
bluetooth = ['servo-bluetooth-traits', 'script_bindings/bluetooth']
# Allow brotli to be used in stream/compressionstream
brotli-compression-stream = ["dep:brotli"]
crown = ['js/crown']
debugmozjs = ['js/debugmozjs']
gamepad = ["script_bindings/gamepad", "embedder_traits/gamepad"]
jitspew = ['js/jitspew']
js_backtrace = []
js_jit = ["js/jit"]
profilemozjs = ['js/profilemozjs']
testbinding = ["script_bindings/testbinding"]
tracing = ["dep:tracing", "script_bindings/tracing"]

# Enable webcrypto
webcrypto = [
    "script_bindings/webcrypto",
    "dep:aes",
    "dep:aes-gcm",
    "dep:aes-kw",
    "dep:argon2",
    "dep:cbc",
    "dep:chacha20poly1305",
    "dep:ctr",
    "dep:cshake",
    "dep:ctutils",
    "dep:ecdsa",
    "dep:ed25519-dalek",
    "dep:ed448-goldilocks",
    "dep:elliptic-curve",
    "dep:hkdf",
    "dep:k12",
    "dep:ml-dsa",
    "dep:ml-kem",
    "dep:ocb3",
    "dep:p256",
    "dep:p384",
    "dep:p521",
    "dep:pkcs8",
    "dep:rsa",
    "dep:sha1",
    "dep:sha2",
    "dep:sha3",
    "dep:x25519-dalek",
    "dep:x448",
    "dep:zeroize",
]
webgl_backtrace = ["servo-canvas-traits/webgl_backtrace"]
webgl = [
    "dep:mozangle",
    "script_bindings/webgl",
    "script_traits/webgl",
    "servo-constellation-traits/webgl",
]
webgpu = [
    "dep:script_webgpu",
    "dep:webgpu_traits",
    "dep:wgpu-core",
    "dep:wgpu-types",
    "script_bindings/webgpu",
    "script_traits/webgpu",
]
webxr = ["webgl", "gamepad", "webxr-api", "script_bindings/webxr"]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(crown)'] }

[dependencies]
aes = { workspace = true, optional = true }
aes-gcm = { workspace = true, optional = true }
aes-kw = { workspace = true, optional = true }
app_units = { workspace = true }
argon2 = { workspace = true, optional = true }
arrayvec = { workspace = true }
atomic_refcell = { workspace = true }
aws-lc-rs = { workspace = true }
backtrace = { workspace = true }
base64 = { workspace = true }
base64ct = { workspace = true }
bitflags = { workspace = true }
brotli = { workspace = true, optional = true }
buf-read-ext = { workspace = true }
bytes = { workspace = true }
cbc = { workspace = true, optional = true }
chacha20poly1305 = { workspace = true, optional = true }
chardetng = { workspace = true }
chrono = { workspace = true }
content-security-policy = { workspace = true }
cookie = { workspace = true }
crossbeam-channel = { workspace = true }
crypto-bigint = { workspace = true }
cshake = { workspace = true, optional = true }
cssparser = { workspace = true }
ctr = { workspace = true, optional = true }
ctutils = { workspace = true, optional = true }
data-url = { workspace = true }
deny_public_fields = { workspace = true }
devtools_traits = { workspace = true }
dom_struct = { workspace = true }
ecdsa = { workspace = true, optional = true }
ed25519-dalek = { workspace = true, optional = true }
ed448-goldilocks = { workspace = true, optional = true }
elliptic-curve = { workspace = true, optional = true }
embedder_traits = { workspace = true }
encoding_rs = { workspace = true }
euclid = { workspace = true }
flate2 = { workspace = true }
fonts = { workspace = true }
fonts_traits = { workspace = true }
glow = { workspace = true }
headers = { workspace = true }
hkdf = { workspace = true, optional = true }
html5ever = { workspace = true }
http = { workspace = true }
httparse = { workspace = true }
hyper_serde = { workspace = true }
icu_locale_core = { workspace = true }
indexmap = { workspace = true }
ipc-channel = { workspace = true }
itertools = { workspace = true }
js = { workspace = true }
jstraceable_derive = { workspace = true }
k12 = { workspace = true, optional = true }
keyboard-types = { workspace = true }
keccak = { workspace = true }
layout_api = { workspace = true }
libc = { workspace = true }
log = { workspace = true }
malloc_size_of = { workspace = true }
malloc_size_of_derive = { workspace = true }
markup5ever = { workspace = true }
media = { workspace = true }
metrics = { workspace = true }
mime = { workspace = true }
mime_guess = { workspace = true }
ml-dsa = { workspace = true, optional = true }
ml-kem = { workspace = true, optional = true }
net_traits = { workspace = true }
nom-rfc8288 = { workspace = true }
num-traits = { workspace = true }
num_cpus = { workspace = true }
ocb3 = { workspace = true, optional = true }
p256 = { workspace = true, optional = true }
p384 = { workspace = true, optional = true }
p521 = { workspace = true, optional = true }
paint_api = { workspace = true }
parking_lot = { workspace = true }
percent-encoding = { workspace = true }
phf = { workspace = true }
pixels = { workspace = true }
pkcs8 = { workspace = true, optional = true }
postcard = { workspace = true }
profile_traits = { workspace = true }
rand = { workspace = true }
regex = { workspace = true }
resvg = { workspace = true }
rsa = { workspace = true, optional = true }
rustc-hash = { workspace = true }
script_bindings = { workspace = true }
script_webgpu = { workspace = true, optional = true }
script_traits = { workspace = true }
selectors = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, features = ["preserve_order"] }
servo-background-hang-monitor-api = { workspace = true }
servo-base = { workspace = true }
servo-bluetooth-traits = { workspace = true, optional = true }
servo-canvas-traits = { workspace = true }
servo-config = { workspace = true }
servo-constellation-traits = { workspace = true }
servo-geometry = { workspace = true }
servo-media = { workspace = true }
servo-tracing = { workspace = true }
servo-url = { workspace = true }
servo-webvtt = { workspace = true }
servo_arc = { workspace = true }
sha1 = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
sha3 = { workspace = true, optional = true }
smallvec = { workspace = true }
sponge-cursor = { workspace = true }
storage_traits = { workspace = true }
strum = { workspace = true }
stylo = { workspace = true }
stylo_atoms = { workspace = true }
stylo_dom = { workspace = true }
stylo_malloc_size_of = { workspace = true }
stylo_traits = { workspace = true }
swapper = { workspace = true }
tempfile = { workspace = true }
tendril = { workspace = true }
time = { workspace = true }
timers = { workspace = true }
tracing = { workspace = true, optional = true }
unicode-bidi = { workspace = true }
unicode-script = { workspace = true }
url = { workspace = true }
urlpattern = { workspace = true }
uuid = { workspace = true, features = ["serde"] }
web_atoms = { workspace = true }
webdriver = { workspace = true }
webgpu_traits = { workspace = true, optional = true }
webrender_api = { workspace = true }
webxr-api = { workspace = true, optional = true }
wgpu-core = { workspace = true, optional = true }
wgpu-types = { workspace = true, optional = true }
x25519-dalek = { workspace = true, optional = true }
x448 = { workspace = true, optional = true }
xml5ever = { workspace = true }
xpath = { workspace = true }
zeroize = { workspace = true, optional = true }

[target.'cfg(not(target_os = "ios"))'.dependencies]
mozangle = { workspace = true, optional = true }