Performance and deployment limits¶
Honest boundaries for the reference tools (0.13.0, alpha).
What dtcs run is¶
- An in-memory interpreter of compiled execution plans
- Useful for teaching, golden tests, and small fixtures
- Not a distributed query engine, warehouse, or production ETL runtime
Platforms and install channels¶
| Channel | Typical platforms | Notes |
|---|---|---|
PyPI dtcs |
CPython 3.9–3.13; manylinux / macOS / Windows wheels when published for the release | Prefer pip install 'dtcs==0.13.0' |
crates.io dtcs |
Any host with Rust 1.75+ | cargo install compiles from source (often several minutes) |
| npm WASM / Node | Node ESM; browsers after initSync |
Experimental; parse/validate/declare only — wasm.md |
Exact wheel filenames vary by release — check PyPI files if install fails on an unusual platform.
Dual CLI on PATH¶
Both the Rust binary and the Python package expose a dtcs command. If both are installed, which dtcs / dtcs version tells you which one runs. Prefer one channel per environment, or put the intended install first on PATH.
Offline / air-gapped¶
Wheels and crates do not include examples/. Paste YAML from the docs or copy files before going offline. Validation and conformance run do not require network when fixtures are embedded (Python wheel / Rust binary).
Guidance¶
| Topic | Guidance |
|---|---|
| Dataset size | Keep reference-runtime inputs small (fixtures / samples — typically tens to low thousands of rows). Do not feed production tables into dtcs run. |
| Memory | Entire inputs and outputs are held in process memory; expect O(rows × columns) growth. |
| Determinism | Prefer declared semantics / catalog deterministic flags; the reference runtime aims for deterministic results for supported operators. |
| Regex / string-advanced | Gated grammar + Unicode pin — pathological patterns can still be expensive; keep fixture patterns simple. |
| Isolation | Do not treat the runtime as a multi-tenant sandbox for untrusted contracts or PII at scale. |
| Network | Validation/runtime avoid network I/O unless you explicitly load remote registries. |
| Production transforms | Use DTCS contracts for semantics and CI gates; implement execution in your engine of choice with a capability profile. |
Recommended production use¶
- Author and review contracts in git
dtcs validate/analyze/compatin CI- Optionally
dtcs conformance runfor tool certification - Execute transforms in your own engine that claims a capability profile via
dtcs match
See adoption/overview.md, what-dtcs-is-not.md, and SECURITY.md.