167 lines
4.6 KiB
TOML
167 lines
4.6 KiB
TOML
[package]
|
|
name = "kcl-lib"
|
|
description = "KittyCAD Language implementation and tools"
|
|
version = "0.2.83"
|
|
edition = "2024"
|
|
license = "MIT"
|
|
repository = "https://github.com/KittyCAD/modeling-app"
|
|
rust-version = "1.88"
|
|
authors = ["Jess Frazelle", "Adam Chalmers", "KittyCAD, Inc"]
|
|
keywords = ["kcl", "KittyCAD", "CAD"]
|
|
exclude = ["tests/*", "benches/*", "examples/*", "e2e/*", "bindings/*", "fuzz/*"]
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "kcl-lib-bin"
|
|
path = "src/main.rs"
|
|
bench = false
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true, features = ["backtrace"] }
|
|
async-recursion = "1.1.1"
|
|
async-trait = { workspace = true }
|
|
base64 = "0.22.1"
|
|
bson = { workspace = true }
|
|
chrono = "0.4.41"
|
|
clap = { version = "4.5.40", default-features = false, optional = true, features = [
|
|
"std",
|
|
"derive",
|
|
] }
|
|
convert_case = "0.8.0"
|
|
csscolorparser = "0.7.2"
|
|
dashmap = { workspace = true }
|
|
dhat = { version = "0.3", optional = true }
|
|
fnv = "1.0.7"
|
|
form_urlencoded = "1.2.1"
|
|
futures = { version = "0.3.31" }
|
|
git_rev = "0.1.0"
|
|
gltf-json = "1.4.1"
|
|
http = { workspace = true }
|
|
image = { version = "0.25.6", default-features = false, features = ["png"] }
|
|
indexmap = { workspace = true, features = ["serde", "rayon"] }
|
|
itertools = "0.14.0"
|
|
kcl-derive-docs = { version = "0.1", path = "../kcl-derive-docs" }
|
|
kittycad = { workspace = true }
|
|
kittycad-modeling-cmds = { workspace = true }
|
|
lazy_static = { workspace = true }
|
|
libm = "0.2.15"
|
|
measurements = "0.11.0"
|
|
miette = { workspace = true }
|
|
mime_guess = "2.0.5"
|
|
nalgebra-glm = "0.19.0"
|
|
parse-display = "0.10.0"
|
|
pyo3 = { workspace = true, optional = true }
|
|
regex = "1.11.1"
|
|
reqwest = { version = "0.12", default-features = false, features = [
|
|
"stream",
|
|
"rustls-tls",
|
|
] }
|
|
rgba_simple = "0.10.0"
|
|
ropey = "1.6.1"
|
|
schemars = { version = "0.8.17", features = [
|
|
"impl_json_schema",
|
|
"indexmap2",
|
|
"url",
|
|
"uuid1",
|
|
"preserve_order",
|
|
] }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
sha2 = "0.10.9"
|
|
tabled = { version = "0.20.0", optional = true }
|
|
tempfile = "3.20"
|
|
thiserror = "2.0.0"
|
|
toml = "0.8.22"
|
|
ts-rs = { version = "11.0.1", features = [
|
|
"uuid-impl",
|
|
"url-impl",
|
|
"chrono-impl",
|
|
"indexmap-impl",
|
|
"no-serde-warnings",
|
|
"serde-json-impl",
|
|
] }
|
|
tynm = "0.2.0"
|
|
url = { version = "2.5.4", features = ["serde"] }
|
|
uuid = { workspace = true, features = ["v4", "v5", "js", "serde"] }
|
|
validator = { version = "0.20.0", features = ["derive"] }
|
|
walkdir = "2.5.0"
|
|
web-time = "1.1"
|
|
winnow = "0.7"
|
|
zip = { workspace = true }
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
console_error_panic_hook = { workspace = true }
|
|
futures-lite = "2.6.0"
|
|
js-sys = { version = "0.3.72" }
|
|
tokio = { workspace = true, features = ["sync", "time"] }
|
|
tower-lsp = { workspace = true, features = ["runtime-agnostic"] }
|
|
typed-path = "0.11.0"
|
|
wasm-bindgen = "0.2.99"
|
|
wasm-bindgen-futures = "0.4.49"
|
|
wasm-timer = { package = "zduny-wasm-timer", version = "0.2.5" }
|
|
web-sys = { version = "0.3.76", features = ["console"] }
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
tokio = { workspace = true, features = ["full"] }
|
|
tokio-tungstenite = { version = "0.27.0", features = [
|
|
"rustls-tls-native-roots",
|
|
] }
|
|
tower-lsp = { workspace = true, features = ["proposed", "default"] }
|
|
|
|
[features]
|
|
default = ["cli", "engine"]
|
|
artifact-graph = []
|
|
benchmark-execution = []
|
|
cli = ["dep:clap", "kittycad/clap"]
|
|
dhat-heap = ["dep:dhat"]
|
|
# For the lsp server, when run with stdout for rpc we want to disable println.
|
|
# This is used for editor extensions that use the lsp server.
|
|
disable-println = []
|
|
engine = []
|
|
pyo3 = ["dep:pyo3"]
|
|
# Helper functions also used in benchmarks.
|
|
lsp-test-util = []
|
|
tabled = ["dep:tabled"]
|
|
|
|
[dev-dependencies]
|
|
approx = "0.5"
|
|
base64 = "0.22.1"
|
|
criterion = { version = "0.6.0", features = ["async_tokio"] }
|
|
expectorate = "1.2.0"
|
|
handlebars = "6.3.2"
|
|
image = { version = "0.25.6", default-features = false, features = ["png"] }
|
|
insta = { version = "1.43.1", features = ["json", "filters", "redactions"] }
|
|
kcl-directory-test-macro = { version = "0.1", path = "../kcl-directory-test-macro" }
|
|
miette = { version = "7.6.0", features = ["fancy"] }
|
|
pretty_assertions = "1.4.1"
|
|
tokio = { version = "1.45.1", features = ["rt-multi-thread", "macros", "time"] }
|
|
twenty-twenty = "0.8.2"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[[bench]]
|
|
name = "compiler_benchmark_criterion"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "digest_benchmark"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "lsp_semantic_tokens_benchmark_criterion"
|
|
harness = false
|
|
required-features = ["lsp-test-util"]
|
|
|
|
[[bench]]
|
|
name = "benchmark_kcl_samples"
|
|
harness = false
|
|
|
|
[[test]]
|
|
name = "executor"
|
|
path = "e2e/executor/main.rs"
|
|
required-features = ["engine"]
|