ferrijs 0.2.2

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.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "ferrijs"
version = "0.2.2"
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.2"
optional = true

[dependencies.ferrijs-permissions]
version = "0.2.2"

[dependencies.ferrijs-serde]
version = "0.2.2"

[dependencies.ferrijs-std]
version = "0.2.2"

[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"