A cross-language library for working with causal graphs (DAGs) in Rust, Python, and WebAssembly.
- rust_core/: Core Rust implementation of DAGs and causal graph logic.
 - python_bindings/: Python bindings using PyO3 and maturin.
 - wasm_bindings/: WebAssembly bindings for use in JavaScript and Node.js environments via wasm-bindgen and wasm-pack
 - r_bindings/: R bindings using extendr.
 
To build and develop this project locally, you will need:
- Rust (stable toolchain)
 - Python 3.x with 
pip - Node.js (LTS recommended) with 
npm - R 4.2+
 - make (usually pre-installed on Linux/macOS, available via build tools on Windows)
 
This library is actively developed and tested on:
- Windows (via WSL, or native MSVC toolchain for Rust + Rtools for R)
 - Linux (Ubuntu, other distros)
 - macOS
 
We provide a top‑level Makefile to save you typing:
- 
Build everything (Rust core + Python + WASM + R):
make all
 - 
Run all tests:
make test 
| Target | What it does | 
|---|---|
make core | 
Builds only the rust_core crate. | 
make python | 
Builds & installs Python bindings. | 
make wasm | 
Builds WASM modules for JS/Node via wasm-pack | 
make r | 
Generates R wrappers via rextendr::document(). | 
MIT