Empirical research belongs to everyone.
Awald is open-source statistical computing for applied researchers — a transparent, reproducible environment where every result can be verified, every method can be inspected, and every researcher can participate regardless of institution or budget.
Built on Python's econometrics ecosystem inside a native Rust shell. MIT licensed.
Empirical research has long depended on proprietary tools: closed source, license-gated, expensive, and opaque at the computational level. Researchers cannot audit what the software does. Institutions in LMICs cannot afford the same methods as well-funded universities. Replication depends on who owns a license, not who has the data and the question.
The statistical methods themselves are not proprietary. The implementations have been open for years. What was missing was the environment — a fast data editor, a reproducible script runner, and output that looks like a paper.
Awald is that environment.
| Feature | Proprietary tools | Awald |
|---|---|---|
| Cost | $500–$1,600/yr | Free |
| Source code | Closed | Open (MIT) |
| Reproducibility | Installer-dependent | Standard Python packages |
| LMIC access | License-gated | Unrestricted |
| Auditability | Black box | Full source |
| Output | Proprietary formats | HTML / LaTeX / Word |
┌─────────────────────────────────────────────────────┐
│ Tauri 2 shell (Rust) │
│ │
│ ┌──────────────┐ ┌───────────────────────────┐ │
│ │ Data Editor │ │ Script Editor │ │
│ │ │ │ (CodeMirror in WebView) │ │
│ │ Virtual │ │ ↓ │ │
│ │ scroll table │ │ Rust executor │ │
│ │ ↑ │ │ (linear, ordered) │ │
│ │ Polars slice │ │ ↓ │ │
│ │ (zero-copy) │ │ pyo3 → Python │ │
│ └──────────────┘ │ pyfixest / statsmodels │ │
│ │ tidyecon │ │
│ ┌──────────────┐ │ ↓ │ │
│ │ Results pane │←──│ HTML table output │ │
│ │ (WebView) │ └───────────────────────────┘ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────┘
Full architecture details in ARCHITECTURE.md.
| Layer | Technology | Version |
|---|---|---|
| Desktop shell | Tauri 2 | 2.10.x |
| UI framework | SvelteKit | 2.x |
| Core language | Rust | 1.82+ (stable) |
| Python bridge | pyo3 | 0.28.x |
| Data engine | Polars | 0.53.x |
| Regression | pyfixest | 0.30.x |
| Statistics | statsmodels | 0.14.x |
| Output tables | tidyecon | 0.1.x |
| Python runtime | Python | 3.12+ |
| Python packaging | uv | latest |
| JS packaging | pnpm | 9.x |
| Rust toolchain | rustup | stable |
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update stable
# Node / pnpm
corepack enable
corepack prepare pnpm@latest --activate
# Python / uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Tauri CLI
cargo install tauri-cli --version "^2"
# System dependencies (Linux)
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev \
librsvg2-dev patchelf libxdo-devgit clone https://github.com/awald-app/awald
cd awald
# Install JS dependencies
pnpm install
# Install Python dependencies
uv sync
# Run in development mode
pnpm tauri devpnpm tauri buildProduces platform-native installers in src-tauri/target/release/bundle/.
awald/
├── src/ # SvelteKit frontend
│ ├── lib/
│ │ ├── components/ # UI components
│ │ ├── stores/ # Svelte stores (session state)
│ │ └── types/ # TypeScript interfaces
│ └── routes/ # SvelteKit pages
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── main.rs
│ │ ├── commands/ # Tauri command handlers
│ │ ├── engine/ # Python executor (pyo3)
│ │ ├── data/ # Polars data layer
│ │ └── session/ # Session state management
│ ├── Cargo.toml
│ └── tauri.conf.json
├── python/ # Bundled Python environment
│ ├── pyproject.toml # uv-managed
│ └── awald_runtime/ # Python runtime module
├── scripts/ # Dev tooling
├── tests/
│ ├── e2e/ # End-to-end (WebdriverIO)
│ └── unit/ # Rust unit tests
├── ARCHITECTURE.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── TODO.md
└── LICENSE
Awald follows Semantic Versioning 2.0.0.
0.x.y— pre-release, breaking changes allowed between minor versions1.0.0— first stable release, public API frozen- Patch releases (
x.y.Z) — bug fixes only, no new features - Minor releases (
x.Y.0) — new features, backward compatible within major - Major releases (
X.0.0) — breaking changes
Current status: pre-alpha (0.0.x) — not yet usable.
Roadmap to 1.0.0 tracked in TODO.md.
See CONTRIBUTING.md. The highest-value contributions right now are:
- Tauri command scaffolding — Rust command handlers for data loading and script execution
- Virtual scroll table — the data editor widget
- Python runtime bundling — embedding a uv-managed Python environment in the Tauri bundle
Awald is one application in a broader open ecosystem:
tidyecon Python library pip install tidyecon
tidy() + glance() + modelsummary()
Works standalone — no desktop app required
awald-core Rust crate Polars data layer + pyo3 executor
Reusable by other statistical desktop apps
awald Desktop app The shell that connects everything
awald.app
awald-docs Docs site awald.app/docs
Researchers can adopt tidyecon independently — for use in scripts, Jupyter
notebooks, or Quarto documents — before ever installing the desktop app.
This seeds the ecosystem and builds institutional trust ahead of the app.
The software is free. Compute and hosting are not.
Future hosted services built on Awald:
- Awald Cloud — run scripts without a local install (students on locked university machines)
- Replication Archive — publish and render replication packages with permanent URLs
- Enterprise support — for World Bank, IMF, central bank deployments
None of these require the code to be proprietary. All of them require the code to be trusted.
MIT — see LICENSE.
Awald is fully open source. All repositories are MIT licensed.
| Repository | Description |
|---|---|
awald-app/awald |
This repo — desktop shell (Tauri + SvelteKit) |
awald-app/awald-core |
Rust data layer and Python executor |
SHA888/tidyecon |
Python tidy/modelsummary library |
awald-app/awald-docs |
Documentation site |
The code is free. Hosted compute and enterprise support are not.
Built by Kresna Sucandra and contributors. Powered by pyfixest, Polars, Tauri, and tidyecon.