[package]
edition = "2024"
name = "kcl-lib"
version = "0.2.122"
authors = [
"Jess Frazelle",
"Adam Chalmers",
"KittyCAD, Inc",
]
build = false
exclude = [
"tests/*",
"benches/*",
"examples/*",
"e2e/*",
"bindings/*",
"fuzz/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "KittyCAD Language implementation and tools"
readme = "README.md"
keywords = [
"kcl",
"KittyCAD",
"CAD",
]
license = "MIT"
repository = "https://github.com/KittyCAD/modeling-app"
resolver = "2"
[features]
artifact-graph = []
benchmark-execution = []
cli = [
"dep:clap",
"kittycad/clap",
]
default = [
"cli",
"engine",
]
dhat-heap = ["dep:dhat"]
disable-println = []
engine = []
lsp-test-util = []
pyo3 = [
"dep:pyo3",
"dep:pyo3-stub-gen",
]
tabled = ["dep:tabled"]
[lib]
name = "kcl_lib"
path = "src/lib.rs"
bench = false
[[bin]]
name = "kcl-lib-bin"
path = "src/main.rs"
bench = false
[dependencies.ahash]
version = "0.8.11"
[dependencies.anyhow]
version = "1"
features = ["backtrace"]
[dependencies.async-recursion]
version = "1.1.1"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.base64]
version = "0.22.1"
[dependencies.chrono]
version = "0.4.42"
[dependencies.clap]
version = "4.5.54"
features = [
"std",
"derive",
]
optional = true
default-features = false
[dependencies.convert_case]
version = "0.10.0"
[dependencies.csscolorparser]
version = "0.8.1"
[dependencies.dashmap]
version = "6.1.0"
[dependencies.dhat]
version = "0.3"
optional = true
[dependencies.fnv]
version = "1.0.7"
[dependencies.form_urlencoded]
version = "1.2.2"
[dependencies.futures]
version = "0.3.31"
[dependencies.git_rev]
version = "0.1.0"
[dependencies.gltf-json]
version = "1.4.1"
[dependencies.http]
version = "1"
[dependencies.image]
version = "0.25.9"
features = ["png"]
default-features = false
[dependencies.indexmap]
version = "2.13.0"
features = [
"serde",
"rayon",
]
[dependencies.itertools]
version = "0.14.0"
[dependencies.kcl-derive-docs]
version = "0.1"
[dependencies.kcl-error]
version = "0.1"
[dependencies.kcl-ezpz]
version = "0.2.15"
[dependencies.kittycad]
version = "0.4.2"
features = [
"js",
"requests",
]
default-features = false
[dependencies.kittycad-modeling-cmds]
version = "0.2.162"
features = [
"ts-rs",
"websocket",
]
[dependencies.lazy_static]
version = "1.5.0"
[dependencies.libm]
version = "0.2.15"
[dependencies.measurements]
version = "0.11.1"
[dependencies.miette]
version = "7.6.0"
[dependencies.mime_guess]
version = "2.0.5"
[dependencies.nalgebra-glm]
version = "0.20.0"
[dependencies.parse-display]
version = "0.10.0"
[dependencies.pyo3]
version = "0.25.1"
optional = true
[dependencies.pyo3-stub-gen]
version = "0.13.1"
optional = true
[dependencies.rayon]
version = "1.11.0"
[dependencies.regex]
version = "1.12.2"
[dependencies.reqwest]
version = "0.12"
features = [
"stream",
"rustls-tls",
]
default-features = false
[dependencies.rgba_simple]
version = "0.10.0"
[dependencies.rmp-serde]
version = "1.3.1"
[dependencies.ropey]
version = "1.6.1"
[dependencies.schemars]
version = "0.8.17"
features = [
"impl_json_schema",
"indexmap2",
"url",
"uuid1",
"preserve_order",
]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10.9"
[dependencies.tabled]
version = "0.20.0"
optional = true
[dependencies.tempfile]
version = "3.24"
[dependencies.thiserror]
version = "2.0.17"
[dependencies.toml]
version = "0.9.11"
[dependencies.ts-rs]
version = "11.1.0"
features = [
"uuid-impl",
"url-impl",
"chrono-impl",
"indexmap-impl",
"no-serde-warnings",
"serde-json-impl",
]
[dependencies.tynm]
version = "0.2.0"
[dependencies.url]
version = "2.5.8"
features = ["serde"]
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
"v4",
"v5",
"js",
"serde",
]
[dependencies.validator]
version = "0.20.0"
features = ["derive"]
[dependencies.walkdir]
version = "2.5.0"
[dependencies.web-time]
version = "1.1"
[dependencies.winnow]
version = "0.7"
[dependencies.zip]
version = "7.0.0"
default-features = false
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.base64]
version = "0.22.1"
[dev-dependencies.criterion]
version = "0.8.1"
features = ["async_tokio"]
[dev-dependencies.expectorate]
version = "1.2.0"
[dev-dependencies.handlebars]
version = "6.4.0"
[dev-dependencies.image]
version = "0.25.9"
features = ["png"]
default-features = false
[dev-dependencies.insta]
version = "1.46.0"
features = [
"json",
"filters",
"redactions",
]
[dev-dependencies.kcl-directory-test-macro]
version = "0.1"
[dev-dependencies.miette]
version = "7.6.0"
features = ["fancy"]
[dev-dependencies.pretty_assertions]
version = "1.4.1"
[dev-dependencies.tokio]
version = "1.49.0"
features = [
"rt-multi-thread",
"macros",
"time",
]
[dev-dependencies.twenty-twenty]
version = "0.8.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1"
features = ["full"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio-tungstenite]
version = "0.28.0"
features = ["rustls-tls-native-roots"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower-lsp]
version = "0.20.0"
features = [
"proposed",
"default",
]
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.console_error_panic_hook]
version = "0.1.7"
[target.'cfg(target_arch = "wasm32")'.dependencies.futures-lite]
version = "2.6.1"
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3.72"
[target.'cfg(target_arch = "wasm32")'.dependencies.tokio]
version = "1"
features = [
"sync",
"time",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.tower-lsp]
version = "0.20.0"
features = ["runtime-agnostic"]
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.typed-path]
version = "0.12.0"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2.99"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4.49"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-timer]
version = "0.2.5"
package = "zduny-wasm-timer"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3.76"
features = ["console"]
[lints.clippy]
assertions_on_result_states = "warn"
dbg_macro = "warn"
iter_over_hash_type = "warn"
lossy_float_literal = "warn"
redundant_clone = "warn"
result_large_err = "allow"