-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
100 lines (82 loc) · 2.56 KB
/
Cargo.toml
File metadata and controls
100 lines (82 loc) · 2.56 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
95
96
97
98
99
100
[workspace]
resolver = "2"
members = [
"crates/duke-sheets-core",
"crates/duke-sheets-formula",
"crates/duke-sheets-xlsx",
"crates/duke-sheets-xls",
"crates/duke-sheets-csv",
"crates/duke-sheets-chart",
"crates/duke-sheets",
"crates/duke-sheets-ffi",
"crates/duke-sheets-cli",
"crates/excel-com-protocol",
"crates/duke-sheets-excel-com",
"crates/libreoffice-urp",
"crates/duke-sheets-libreoffice",
"crates/duke-sheets-html",
]
# Bindings are excluded from the default workspace build
exclude = [
"bindings/python",
"bindings/wasm",
"bindings/nodejs",
]
[workspace.package]
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/yourorg/duke-sheets"
rust-version = "1.70"
[workspace.dependencies]
# Internal crates
duke-sheets-core = { path = "crates/duke-sheets-core" }
duke-sheets-formula = { path = "crates/duke-sheets-formula" }
duke-sheets-xlsx = { path = "crates/duke-sheets-xlsx" }
duke-sheets-xls = { path = "crates/duke-sheets-xls" }
duke-sheets-csv = { path = "crates/duke-sheets-csv" }
duke-sheets-chart = { path = "crates/duke-sheets-chart" }
duke-sheets-html = { path = "crates/duke-sheets-html" }
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# Logging
log = "0.4"
tracing = "0.1"
# XML parsing (for XLSX)
quick-xml = "0.37"
# ZIP handling (for XLSX) - only deflate needed; bzip2/lzma/zstd use C deps that break WASM
# `time` feature removed: it calls SystemTime::now() via DateTime::default_for_write(),
# which panics on wasm32-unknown-unknown. Without it, zip uses a fixed date (1980-01-01).
zip = { version = "2.1", default-features = false, features = ["deflate"] }
# CSV handling
csv = "1.3"
# Date/time
chrono = { version = "0.4", default-features = false, features = ["std", "clock"] }
# Decimal precision for financial calculations
rust_decimal = "1.35"
# Number format rendering (Excel-compatible ECMA-376 format codes)
ssfmt = "0.1"
# Regex (for formulas, number formats)
regex = "1.10"
lazy-regex = "3.1"
# Lazy static (for FFI global context)
lazy_static = "1.4"
once_cell = "1.19"
# Hash functions (for style deduplication)
ahash = "0.8"
# Serialization (optional, for debugging)
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# CLI
clap = { version = "4", features = ["derive"] }
# Dev dependencies (in workspace.dependencies so crates can inherit)
tempfile = "3"
criterion = { version = "0.5", features = ["html_reports"] }
proptest = "1.4"
pretty_assertions = "1.4"
[profile.release]
lto = true
codegen-units = 1
[profile.bench]
lto = true