Rust编写的JavaScript引擎,该项目是一个试验性质的项目。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

234 lines
7.3 KiB

[workspace]
resolver = "2"
members = [
# CORE
"core/*",
# FFI
"ffi/*",
# TESTS
"tests/*",
# TOOLS
"tools/*",
# OTHERS
"examples",
"cli",
# TOOLS
"tools/*",
]
exclude = [
"tests/fuzz", # Does weird things on Windows tests
"tests/src", # Just a hack to have fuzz inside tests
]
[workspace.package]
edition = "2021"
version = "0.19.0"
rust-version = "1.82.0"
authors = ["boa-dev"]
repository = "https://github.com/boa-dev/boa"
license = "Unlicense OR MIT"
description = "Boa is a Javascript lexer, parser and compiler written in Rust. Currently, it has support for some of the language."
[workspace.dependencies]
# Repo Crates
boa_ast = { version = "~0.19.0", path = "core/ast" }
boa_engine = { version = "~0.19.0", path = "core/engine" }
boa_gc = { version = "~0.19.0", path = "core/gc" }
boa_icu_provider = { version = "~0.19.0", path = "core/icu_provider" }
boa_interner = { version = "~0.19.0", path = "core/interner" }
boa_interop = { version = "~0.19.0", path = "core/interop" }
boa_macros = { version = "~0.19.0", path = "core/macros" }
boa_parser = { version = "~0.19.0", path = "core/parser" }
boa_profiler = { version = "~0.19.0", path = "core/profiler" }
boa_runtime = { version = "~0.19.0", path = "core/runtime" }
boa_string = { version = "~0.19.0", path = "core/string" }
# Shared deps
arbitrary = "1"
bitflags = "2.5.0"
clap = "4.5.20"
colored = "2.1.0"
fast-float = "0.2.0"
hashbrown = { version = "0.14.5", default-features = false }
indexmap = { version = "2.6.0", default-features = false }
indoc = "2.0.5"
jemallocator = "0.5.4"
num-bigint = "0.4.6"
num-traits = "0.2.19"
once_cell = { version = "1.20.2", default-features = false }
phf = { version = "0.11.2", default-features = false }
pollster = "0.3.0"
regex = "1.11.1"
regress = { version = "0.10.1", features = ["utf16"] }
rustc-hash = { version = "2.0.0", default-features = false }
serde_json = "1.0.132"
serde = "1.0.214"
static_assertions = "1.1.0"
textwrap = "0.16.0"
thin-vec = "0.2.13"
time = { version = "0.3.36", default-features = false, features = ["local-offset", "large-dates", "wasm-bindgen", "parsing", "formatting", "macros"] }
tinystr = "0.7.5"
log = "0.4.22"
simple_logger = "5.0.0"
cargo_metadata = "0.18.1"
trybuild = "1.0.101"
rayon = "1.10.0"
toml = "0.8.19"
color-eyre = "0.6.3"
comfy-table = "7.1.1"
serde_repr = "0.1.19"
bus = "2.4.1"
wasm-bindgen = { version = "0.2.95", default-features = false }
getrandom = { version = "0.2.15", default-features = false }
console_error_panic_hook = "0.1.7"
wasm-bindgen-test = "0.3.45"
smol = "2.0.2"
futures-util = "0.3.31"
isahc = "1.7.2"
rustyline = { version = "14.0.0", default-features = false }
dhat = "0.3.3"
quote = "1.0.37"
syn = { version = "2.0.87", default-features = false }
proc-macro2 = "1.0"
synstructure = "0.13"
measureme = "11.0.1"
sptr = "0.3.2"
paste = "1.0"
rand = "0.8.5"
num-integer = "0.1.46"
ryu-js = "1.0.1"
tap = "1.0.1"
thiserror = "1.0.69"
dashmap = "5.5.3"
num_enum = "0.7.3"
itertools = { version = "0.13.0", default-features = false }
portable-atomic = "1.9.0"
bytemuck = { version = "1.19.0", default-features = false }
arrayvec = "0.7.6"
intrusive-collections = "0.9.7"
cfg-if = "1.0.0"
either = "1.13.0"
sys-locale = "0.3.2"
temporal_rs = { git = "https://github.com/boa-dev/temporal.git", rev = "1e7901d07a83211e62373ab94284a7d1ada4c913" }
web-time = "1.1.0"
criterion = "0.5.1"
float-cmp = "0.9.0"
futures-lite = "2.5.0"
test-case = "3.3.1"
winapi = { version = "0.3.9", default-features = false }
# ICU4X
icu_provider = { version = "~1.5.0", default-features = false }
icu_locid = { version = "~1.5.0", default-features = false }
icu_locid_transform = { version = "~1.5.0", default-features = false }
icu_datetime = { version = "~1.5.1", default-features = false }
icu_calendar = { version = "~1.5.1", default-features = false }
icu_collator = { version = "~1.5.0", default-features = false }
icu_plurals = { version = "~1.5.0", default-features = false }
icu_list = { version = "~1.5.0", default-features = false }
icu_casemap = { version = "~1.5.0", default-features = false }
icu_segmenter = { version = "~1.5.0", default-features = false }
icu_datagen = { version = "~1.5.0", default-features = false }
icu_provider_adapters = { version = "~1.5.0", default-features = false }
icu_provider_blob = { version = "~1.5.0", default-features = false }
icu_properties = { version = "~1.5.0", default-features = true }
icu_normalizer = { version = "~1.5.0", default-features = false }
icu_decimal = { version = "~1.5.0", default-features = false }
writeable = "~0.5.5"
yoke = "~0.7.4"
zerofrom = "~0.1.4"
fixed_decimal = "~0.5.6"
[workspace.metadata.workspaces]
allow_branch = "main"
# The ci profile, designed to reduce size of target directory
[profile.ci]
inherits = "dev"
debug = false
incremental = false
# The release profile, used for `cargo build --release`.
[profile.release]
# Enables "fat" LTO, for faster release builds
lto = "fat"
# Makes sure that all code is compiled together, for LTO
codegen-units = 1
# Strips debug information and symbols from the binary, reducing its size
strip = "symbols"
[profile.release-dbg]
inherits = "release"
debug = true
strip = "none"
# The test profile, used for `cargo test`.
[profile.test]
# Enables thin local LTO and some optimizations.
opt-level = 1
# The benchmark profile, used for `cargo bench`.
[profile.bench]
# Enables "fat" LTO, for faster benchmark builds
lto = "fat"
# Makes sure that all code is compiled together, for LTO
codegen-units = 1
[workspace.lints.rust]
# rustc lint groups https://doc.rust-lang.org/rustc/lints/groups.html
warnings = "warn"
future_incompatible = { level = "warn", priority = -1 }
let_underscore = { level = "warn", priority = -1 }
nonstandard_style = { level = "warn", priority = -1 }
rust_2018_compatibility = { level = "warn", priority = -1 }
rust_2018_idioms = { level = "warn", priority = -1 }
rust_2021_compatibility = { level = "warn", priority = -1 }
unused = { level = "warn", priority = -1 }
# rustc allowed-by-default lints https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html
missing_docs = "warn"
macro_use_extern_crate = "warn"
meta_variable_misuse = "warn"
missing_abi = "warn"
missing_copy_implementations = "warn"
missing_debug_implementations = "warn"
non_ascii_idents = "warn"
noop_method_call = "warn"
single_use_lifetimes = "warn"
trivial_casts = "warn"
trivial_numeric_casts = "warn"
unreachable_pub = "warn"
unsafe_op_in_unsafe_fn = "warn"
unused_crate_dependencies = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
unused_qualifications = "warn"
variant_size_differences = "warn"
[workspace.lints.rustdoc]
# rustdoc lints https://doc.rust-lang.org/rustdoc/lints.html
broken_intra_doc_links = "warn"
private_intra_doc_links = "warn"
missing_crate_level_docs = "warn"
private_doc_tests = "warn"
invalid_codeblock_attributes = "warn"
invalid_rust_codeblocks = "warn"
bare_urls = "warn"
[workspace.lints.clippy]
# clippy allowed by default
dbg_macro = "warn"
print_stdout = "warn"
print_stderr = "warn"
# clippy categories https://doc.rust-lang.org/clippy/
all = { level = "warn", priority = -1 }
correctness = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }