-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
94 lines (86 loc) · 2.87 KB
/
Cargo.toml
File metadata and controls
94 lines (86 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
[workspace]
resolver = "2"
members = [
"crates/fast-yaml-core",
"crates/fast-yaml-linter",
"crates/fast-yaml-parallel",
"crates/fast-yaml-cli",
"python",
"nodejs",
]
# FFI bindings require specialized build tools (maturin for Python, napi for Node.js)
# Build with: `uv run maturin develop` (Python) or `npm run build` (Node.js)
default-members = [
"crates/fast-yaml-core",
"crates/fast-yaml-linter",
"crates/fast-yaml-parallel",
"crates/fast-yaml-cli",
]
[workspace.package]
version = "0.6.1"
edition = "2024"
rust-version = "1.88.0"
license = "MIT OR Apache-2.0"
repository = "https://github.com/bug-ops/fast-yaml"
[workspace.dependencies]
# Internal crates
fast-yaml-core = { path = "crates/fast-yaml-core", version = "0.6.1" }
fast-yaml-linter = { path = "crates/fast-yaml-linter", version = "0.6.1" }
fast-yaml-parallel = { path = "crates/fast-yaml-parallel", version = "0.6.1" }
# External dependencies - production
anyhow = { version = "1" }
bumpalo = { version = "3.20" }
clap = { version = "4.6" }
colored = { version = "3.1" }
glob = { version = "0.3" }
globset = { version = "0.4" }
ignore = { version = "0.4" }
is-terminal = { version = "0.4" }
memchr = { version = "2.8" }
memmap2 = { version = "0.9" }
napi = { version = "3.8" }
napi-build = { version = "2.3" }
napi-derive = { version = "3.5" }
num_cpus = { version = "1.17" }
ordered-float = { version = "5" }
pyo3 = { version = "0.28" }
rayon = { version = "1.11" }
saphyr = { version = "0.0.6" }
saphyr-parser = { version = "0.0.6" }
serde = { version = "1.0" }
serde_json = { version = "1.0" }
serde_norway = { version = "0.9" }
thiserror = { version = "2.0" }
# External dependencies - dev/test
assert_cmd = { version = "2.2" }
criterion = { version = "0.8" }
indoc = { version = "2.0" }
predicates = { version = "3.1" }
proptest = { version = "1.10" }
tempfile = { version = "3.27" }
[workspace.lints.rust]
# Use "deny" instead of "forbid" to allow local #[allow(unsafe_code)] where necessary
# Unsafe code is still denied by default but can be explicitly allowed with documentation
unsafe_code = "deny"
missing_docs = "warn"
# Temporarily allow dead_code during batch mode implementation (Phase 1-3 complete, Phase 4 pending)
dead_code = "allow"
[workspace.lints.clippy]
# Lint groups with lower priority so individual lints can override
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
cargo = { level = "warn", priority = -1 }
# Allow specific patterns (higher priority overrides groups)
module_name_repetitions = "allow"
must_use_candidate = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
cargo_common_metadata = "allow"
multiple_crate_versions = "allow"
[profile.release]
lto = true
codegen-units = 1
opt-level = 3
strip = true
# Note: panic = "abort" removed - NAPI-RS requires "unwind" for proper JS error handling