Skip to content

About

Who This Is For

The mountainash ecosystem serves several distinct practitioner roles. Your starting point depends on what you're trying to accomplish.

Data Analyst

You explore, transform, and analyse data interactively — notebooks, scripts, ad-hoc queries. You want to write expressions once and get results from any backend.

Start with: mountainash + mountainash-data

Your workflow: Connect to any database via mountainash-data, write expressions with Polars-compatible col/lit/when syntax, build pipelines with relation(), get results via .to_polars(), .to_pandas(), or .to_dicts() (18 terminal formats), conform messy data with .conform(spec), validate with data contracts.

Expand to: mountainash-rules for decision logic, mountainash-treespec for nested data flattening.

Data Engineer

You build production data pipelines — ingestion, transformation, validation, storage across any backend combination.

Start with: mountainash + mountainash-data + mountainash-settings

Your workflow: Configure with typed settings (YAML/TOML/secrets), connect to databases (23+ dialects, Iceberg), define API endpoints, flatten hierarchical responses, conform to TypeSpec schemas, validate with data contracts, evaluate business rules, store in any backend.

Expand to: mountainash-api-client for API ingestion, mountainash-treespec for format handling, mountainash-rules for business logic, mountainash-transport for cloud storage.

Decision Management Author

You define business rules, pricing tables, feature flags, and configuration matrices that evaluate on any backend.

Start with: mountainash-rules + mountainash-data

Your workflow: Define dimensions with match strategies, load rule tables from any database or file, evaluate contexts with explainability, resolve combinatorial problems with the accumulator engine, export to DMN 1.3 for regulatory compliance.

Expand to: mountainash-rules-babel for DMN/CSV format bridging, mountainash-data for storing rules in Snowflake/DuckDB/Iceberg.

Platform / Infrastructure Team

You build shared data platform infrastructure — configuration, auth, connectivity, validation, governance.

Start with: mountainash-settings + mountainash-data + mountainash-auth-client

Your workflow: Standardise configuration with typed settings classes, manage credentials via 13 auth methods, connect to all databases, define TypeSpec schemas for physical contracts, add data contracts for logical quality, feed validation results into DQ dashboards, use treespec for regulatory format handling, rules for compliance logic.

Expand to: The full stack — all packages compose.

Integration / ETL Developer

You ingest data from REST APIs and hierarchical file formats into databases.

Start with: mountainash-api-client + mountainash-treespec

Your workflow: Declare API endpoints as typed dataclasses (5 lines each), auth via auth-client (OAuth2/PKCE, API keys, etc.), automatic pagination/retry/rate-limiting, flatten nested responses with treespec (JSON, XML, Protobuf, Avro, Pydantic), conform to schemas, validate, store in any database.

Expand to: mountainash-data for database storage, mountainash for validation and conformance.

Installation

Package Install
mountainash pip install mountainash
mountainash-data pip install mountainash-data (optional: [iceberg])
mountainash-settings pip install mountainash-settings
mountainash-transport pip install mountainash-transport
mountainash-auth-client pip install mountainash-auth-client (optional: [oauth1])
mountainash-api-client pip install mountainash-api-client
mountainash-treespec pip install mountainash-treespec (optional: [json], [xml], [protobuf], [pydantic], [avro])
mountainash-rules pip install mountainash-rules
mountainash-rules-babel pip install mountainash-rules-babel (optional: [jdm], [flagd], [drools])

How to Navigate the Manuals

The available manuals share the structure below. See the Project Library for current availability; deferred books retain their outlines but are not published.

  • Read chapters in order — concepts are introduced in dependency order, so each chapter builds on what came before
  • Use the search bar to jump to a specific term or concept
  • Try the MicroSims where available — interactive simulations visualise architecture and data flow, but inherited books also contain static diagrams and unimplemented simulation descriptions
  • Check the Learning Graph to see how concepts connect and what to read first
  • Use the API Reference as a companion while reading — it has the module-level detail

About the Project

Mountainash is an open-source Python ecosystem for backend-portable data engineering. It composes established open standards — Ibis, Narwhals, Polars, Frictionless Data, Substrait, Iceberg, DMN, Pydantic — through a shared expression substrate that makes them work together.