cljrs-runtime 0.2.21

clojurust runtime: environment, builtins, tree-walking interpreter, and tiered evaluation
Documentation
[package]
name = "cljrs-runtime"
version = "0.2.21"
edition = "2024"
description = "clojurust runtime: environment, builtins, tree-walking interpreter, and tiered evaluation"
license.workspace = true
repository.workspace = true

[features]
default = ["deps", "regex-full"]

# Regex engine, forwarded to cljrs-value (which owns the choice); `regex-full`
# is the default engine, `small-regex` swaps in regex-lite.
regex-full  = ["cljrs-value/regex-full"]
small-regex = ["cljrs-value/small-regex"]

no-gc = ["cljrs-gc/no-gc", "cljrs-value/no-gc"]

# Git-backed dependency and versioned-var support: installs the
# `cljrs-project`-backed `VcsProvider` (gitoxide + rPGP + ssh-key) at
# `GlobalEnv::new` time. Turning it off drops ~290 transitive crates — the
# whole gix/pgp/ssh-key tree — from an embedding of the interpreter; versioned
# resolution then works only against embedded (AOT) sources. `GlobalEnv`'s
# layout is the same either way, so mixing the two in one build is safe.
deps = ["cljrs-project/vcs"]

[dependencies]
cljrs-types   = { workspace = true }
cljrs-gc      = { workspace = true }
cljrs-value   = { workspace = true }
cljrs-reader  = { workspace = true }
# Config model only by default; the `deps` feature adds `cljrs-project/vcs`.
# Never `vcs-net` — the interpreter reads local repositories and never fetches.
cljrs-project = { workspace = true }
cljrs-ir      = { workspace = true }
tracing      = { workspace = true }
thiserror    = "2.0.18"
num-bigint   = { workspace = true }
num-rational = { workspace = true }
bigdecimal   = { workspace = true }
num-traits   = { workspace = true }
rand         = { workspace = true }
rpds         = { workspace = true }
uuid         = { workspace = true, features = ["v4"] }

# `logging` installs a subscriber, which is a host-side concern: a wasm32
# runtime has no stderr to format to and installs none.
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tracing-subscriber = { workspace = true }

[dev-dependencies]
proptest = "1"
tempfile = "3"