[package]
edition = "2024"
name = "ferrijs"
version = "0.2.1"
authors = ["Salama Ashoush <salamaashoush@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An embeddable JavaScript runtime on QuickJS: Node and web standard globals, ES modules and require, a capability sandbox with resource limits, and an extension model for host APIs."
homepage = "https://github.com/salamaashoush/ferrijs"
readme = false
keywords = [
"javascript",
"quickjs",
"runtime",
"sandbox",
"embedded",
]
categories = [
"development-tools",
"web-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/salamaashoush/ferrijs"
resolver = "2"
[features]
default = ["fetch"]
fetch = [
"dep:ferrijs-fetch",
"dep:bytes",
]
js-dump-leaks = ["rquickjs/dump-leaks"]
schema = ["dep:schemars"]
[lib]
name = "ferrijs"
path = "src/lib.rs"
[[test]]
name = "compression_streams"
path = "tests/compression_streams.rs"
[[test]]
name = "crypto_api"
path = "tests/crypto_api.rs"
[[test]]
name = "fetch_api"
path = "tests/fetch_api.rs"
[[test]]
name = "fetch_body_init"
path = "tests/fetch_body_init.rs"
[[test]]
name = "fetch_conformance"
path = "tests/fetch_conformance.rs"
[[test]]
name = "fetch_policy"
path = "tests/fetch_policy.rs"
[[test]]
name = "node_assert_url_timers"
path = "tests/node_assert_url_timers.rs"
[[test]]
name = "node_buffer"
path = "tests/node_buffer.rs"
[[test]]
name = "node_compat_modules"
path = "tests/node_compat_modules.rs"
[[test]]
name = "node_os"
path = "tests/node_os.rs"
[[test]]
name = "node_util_events"
path = "tests/node_util_events.rs"
[[test]]
name = "process_shim"
path = "tests/process_shim.rs"
[[test]]
name = "runtime"
path = "tests/runtime.rs"
[[test]]
name = "session"
path = "tests/session.rs"
[[test]]
name = "streams_api"
path = "tests/streams_api.rs"
[[test]]
name = "vm_teardown"
path = "tests/vm_teardown.rs"
[[test]]
name = "webapi_platform"
path = "tests/webapi_platform.rs"
[dependencies.bytes]
version = "1"
optional = true
[dependencies.ferrijs-fetch]
version = "0.2.1"
optional = true
[dependencies.ferrijs-permissions]
version = "0.2.1"
[dependencies.ferrijs-serde]
version = "0.2.1"
[dependencies.ferrijs-std]
version = "0.2.1"
[dependencies.futures]
version = "0.3"
[dependencies.rquickjs]
version = "0.13"
features = [
"full-async",
"parallel",
"macro",
"loader",
"array-buffer",
"half",
"either",
"bytes",
]
[dependencies.rustc-hash]
version = "2"
[dependencies.schemars]
version = "1"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sourcemap]
version = "9"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tracing]
version = "0.1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"full",
"test-util",
]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[lints.clippy]
dbg_macro = "warn"
expect_used = "warn"
todo = "warn"
unwrap_used = "warn"
[lints.clippy.complexity]
level = "warn"
priority = -1
[lints.clippy.correctness]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.clippy.perf]
level = "deny"
priority = -1
[lints.clippy.style]
level = "warn"
priority = -1
[lints.clippy.suspicious]
level = "deny"
priority = -1
[lints.rust]
rust_2018_idioms = "warn"
unsafe_code = "warn"