[package]
name = "quickjs-oxide"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
publish.workspace = true
description = "A safe Rust JavaScript engine targeting semantic parity with QuickJS"
homepage.workspace = true
readme = "README.md"
include = ["/src", "/examples", "/README.md", "/LICENSE", "/NOTICE", "/LICENSES"]
keywords = ["javascript", "ecmascript", "quickjs", "interpreter", "engine"]
categories = ["compilers", "development-tools"]
[lints]
workspace = true
[dependencies]
oxide-core = { workspace = true }
oxide-regexp = { workspace = true }
num-bigint = { workspace = true }
num-traits = { workspace = true }
[features]
default = []
test262-host = []
test-support = []
gc-stress = ["oxide-core/gc-stress"]
ic-stats = ["oxide-core/ic-stats"]
register-stress = []
[dev-dependencies]
quickjs-oxide-host = { path = "adapters/native", features = ["engine-test-support"] }
oxide-regexp = { workspace = true, features = ["test-hooks"] }
[[test]]
name = "main_thread_stack_probe"
harness = false
[workspace]
members = ["adapters/native", "adapters/web", ".", "apps/cli", "apps/web", "conformance/test262", "core", "regexp"]
default-members = [".", "apps/cli"]
resolver = "3"
[workspace.package]
version = "0.4.0"
edition = "2024"
rust-version = "1.99"
license = "MIT"
repository = "https://github.com/pocket-nexus/quickjs-oxide"
homepage = "https://quickjs-oxide.pocket.nexus/"
publish = true
[workspace.dependencies]
quickjs-oxide-web-host = { path = "adapters/web", version = "0.4.0" }
quickjs-oxide-host = { path = "adapters/native", version = "0.4.0" }
quickjs-oxide = { path = ".", version = "0.4.0", default-features = false }
oxide-core = { path = "core", version = "0.4.0", package = "quickjs-oxide-core" }
oxide-regexp = { path = "regexp", version = "0.4.0", package = "quickjs-oxide-regexp" }
num-bigint = "=0.5.1"
num-traits = "=0.2.19"
tz-rs = "=0.7.3"
js-sys = { version = "=0.3.103", default-features = false }
wasm-bindgen = "=0.2.126"
[workspace.lints.rust]
unsafe_code = "forbid"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
collapsible_match = "allow"
[profile.release]
lto = "fat"
codegen-units = 1
[profile.web]
inherits = "release"
opt-level = "s"
lto = true
codegen-units = 1
strip = true
panic = "abort"