[package]
name = "ferrijs-std"
description = "Node and web standard library for the ferrijs QuickJS runtime: WHATWG Streams, Events, AbortController, Buffer, crypto, fs, os, url, zlib and the capability model they enforce (partly derived from awslabs/llrt, Apache-2.0)."
version.workspace = true
edition = "2021"
license = "Apache-2.0"
authors.workspace = true
repository.workspace = true
homepage.workspace = true
[lints.rust]
unsafe_code = "allow"
unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(feature, values("sleep-timers"))',
'cfg(nightly)',
'cfg(rust_nightly)',
'cfg(feature, values("crypto-openssl", "crypto-ring", "crypto-ring-rust", "crypto-graviola", "crypto-graviola-rust", "llrt_json"))',
] }
[lints.clippy]
correctness = { level = "deny", priority = -1 }
perf = { level = "deny", priority = -1 }
suspicious = { level = "deny", priority = -1 }
[features]
default = [
"fs",
"sleep-tokio",
"system",
"statistics",
"network",
"crypto-rust",
"brotli-rust",
"flate2-rust",
"zstd-c",
]
fs = []
bytearray-buffer = []
sleep-tokio = []
_subtle-full = []
_rustcrypto = ["_subtle-full"]
_modern-webcrypto = []
crypto-rust = ["_rustcrypto", "_modern-webcrypto"]
brotli-c = ["brotlic"]
brotli-rust = ["brotli"]
flate2-c = ["flate2/zlib-ng"]
flate2-rust = ["flate2/zlib-rs"]
zstd-c = ["zstd"]
zstd-rust = ["zstd"]
system = ["sysinfo/system"]
statistics = ["system"]
network = ["sysinfo/network", "system"]
[dependencies]
ferrijs-permissions = { workspace = true }
either = "1"
base64 = { workspace = true }
aes = "0.9"
aes-gcm = { version = "0.11", features = ["alloc", "aes", "hazmat"], default-features = false }
aes-kw = { version = "0.3", features = ["oid"], default-features = false }
cbc = { version = "0.2", features = ["alloc"] }
chacha20poly1305 = { version = "0.11", features = ["alloc"], default-features = false }
const-oid = { version = "0.10", features = ["db"], default-features = false }
cshake = { version = "0.2", features = ["alloc"], default-features = false }
ctutils = { version = "0.4", default-features = false }
crc32c = { version = "0.6", default-features = false }
crc32fast = { version = "1", default-features = false }
ctr = { version = "0.10", default-features = false }
der = { version = "0.8", features = ["derive", "alloc"], default-features = false }
ecdsa = { version = "0.17", default-features = false }
ed25519-dalek = { version = "3.0.0", features = ["alloc", "pkcs8", "rand_core"], default-features = false }
elliptic-curve = { version = "0.14", features = ["alloc", "sec1"], default-features = false }
hkdf = { version = "0.13", default-features = false }
hmac = { version = "0.13", default-features = false }
keccak = { version = "0.2", default-features = false }
md-5 = { version = "0.11", features = ["alloc", "oid"], default-features = false }
ml-dsa = { version = "0.1", features = ["alloc", "pkcs8", "rand_core"], default-features = false }
ml-kem = { version = "0.3", features = ["alloc", "pkcs8"], default-features = false }
p256 = { version = "0.14", features = ["alloc", "ecdh", "ecdsa", "pkcs8"], default-features = false }
p384 = { version = "0.14.0", features = ["alloc", "ecdh", "ecdsa", "pkcs8"], default-features = false }
p521 = { version = "0.14.0", features = ["ecdh", "ecdsa", "pkcs8"], default-features = false }
pbkdf2 = { version = "0.13", default-features = false }
pkcs8 = { version = "0.11", features = ["alloc"], default-features = false }
rand = { version = "0.10", features = ["std", "std_rng", "thread_rng"], default-features = false }
rsa = { version = "0.10.0-rc.18", features = ["std", "sha2", "encoding"], default-features = false }
sha1 = { version = "0.11", features = ["alloc", "oid"], default-features = false }
sha2 = { version = "0.11", features = ["alloc", "oid"], default-features = false }
sha3 = { version = "0.12", default-features = false }
shake = { version = "0.1", default-features = false }
simd-json = { version = "0.18", features = ["big-int-as-float"], default-features = false }
spki = { version = "0.8", features = ["alloc"], default-features = false }
sponge-cursor = { version = "0.1", default-features = false }
x25519-dalek = { version = "3.0.0", features = ["static_secrets", "zeroize"], default-features = false }
base64-simd = { version = "0.8", features = ["alloc"], default-features = false }
hex-simd = { version = "0.8", features = ["alloc"], default-features = false }
itoa = { version = "1", default-features = false }
phf = { version = "0.14", features = ["macros"], default-features = false }
ryu = { version = "1", default-features = false }
half = { version = "2", default-features = false }
home = { version = "0.5", default-features = false }
memchr = "2"
num_cpus = { version = "1", default-features = false }
once_cell = { version = "1", features = ["std"], default-features = false }
sysinfo = { version = "0.39", default-features = false, optional = true }
rquickjs = { workspace = true }
simdutf8 = { version = "0.1", features = ["std", "aarch64_neon"] }
url = { version = "2", features = ["std"], default-features = false }
flate2 = "1"
brotli = { version = "9", features = ["std"], default-features = false, optional = true }
brotlic = { version = "0.8", default-features = false, optional = true }
zstd = { version = "0.14", default-features = false, optional = true }
percent-encoding = { version = "2", default-features = false, features = ["std"] }
tokio = { workspace = true }
tracing = { workspace = true }
libc = { workspace = true }
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = [
"Win32_Foundation",
"Win32_System_Threading",
], default-features = false }
junction = "2"
[dev-dependencies]
tempfile = { workspace = true }
tokio = { workspace = true, features = ["full", "test-util"] }
uuid = { version = "1", features = ["v4"] }