|
| 1 | +>>>markdown |
| 2 | +# Malloy Public Roadmap |
| 3 | + |
| 4 | +It is a common request for "what to expect next". This roadmap file is our best effort to share with the community our thoughts about Malloy roadmap. |
| 5 | +* This is directional, not a commitment schedule. |
| 6 | +* Items shift as PRs land and priorities change. |
| 7 | + |
| 8 | +**2026 goal:** Make Malloy + Publisher as capable as commercially available semantic modeling & BI tools - from warehouse connection to dashboard - fully open source. |
| 9 | + |
| 10 | +Have a request or idea? [Open an issue](https://github.com/malloydata/malloy/issues/new/choose) · [Start a Discussion](https://github.com/malloydata/malloy/discussions) · [Join Slack](https://malloydata.github.io/slack) |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +## In Progress 🚧 |
| 15 | + |
| 16 | +### Language |
| 17 | + |
| 18 | +- **The `in` operator** - membership testing: `carrier in ['UA', 'AA']` *(accepted)* |
| 19 | +- **Persistent sources** - `#@ persist` to cache expensive intermediate results as tables *(experimental: `persistence`)* |
| 20 | +- **Type declarations & virtual sources** - abstract source schemas bindable at runtime *(experimental: `virtual_source`)* |
| 21 | +- **Givens (model-level parameters)** - runtime-bound `$NAME` values for row-level access control, per-tenant filtering, and other request-scoped context *(experimental: `givens`)* |
| 22 | + |
| 23 | +### Ecosystem |
| 24 | + |
| 25 | +- **Publisher UI refresh** - new layout and navigation, with better visualization defaults |
| 26 | +- **Materialization via CLI** - `#@ persist` annotation + `malloy build` to persist tables with dependency ordering |
| 27 | +- **Query result cache & pagination** - handle large result sets without timeouts |
| 28 | +- **Python DataFrame client** - Publisher REST client returning pandas/Polars DataFrames |
| 29 | +- **MCP toolset** - revised core tools for model discovery, query execution, and result retrieval |
| 30 | +- **Core chart enhancements** - reference lines, combo charts, dual Y-axes, `snake_case`→Title Case |
| 31 | +- **Table enhancements** - pinned header, conditional formatting (heatmap coloring), interactive sort |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +## Planned 📋 |
| 36 | + |
| 37 | +### Language |
| 38 | + |
| 39 | +Full proposal details in [malloydata/whatsnext](https://github.com/malloydata/whatsnext). |
| 40 | + |
| 41 | +| Feature | What it enables | |
| 42 | +|---|---| |
| 43 | +| [Source & query parameters](https://github.com/malloydata/whatsnext/blob/main/wns/WN-0002-parameters/wn-0002.md) | Parameterized `time_filter`, `string_filter`, `numeric_filter` on sources and views | |
| 44 | +| [Drill](https://github.com/malloydata/whatsnext/blob/main/wns/WN-0021-drill/wn-0021.md) | Structured drill-down from summary views to detail rows | |
| 45 | +| [Modules](https://github.com/malloydata/whatsnext/blob/main/wns/WN-0010-module-support/wn-0010.md) | URL-based module imports for shared Malloy libraries | |
| 46 | + |
| 47 | +### Database Support |
| 48 | + |
| 49 | +Current: BigQuery · Snowflake · DuckDB · MotherDuck · PostgreSQL · MySQL · Trino · Presto · Databricks |
| 50 | + |
| 51 | +Other databases under consideration: |
| 52 | + |
| 53 | +| Connector | Notes | |
| 54 | +|---|---| |
| 55 | +| Redshift | Amazon Redshift / Serverless / Spectrum | |
| 56 | +| Oracle | Oracle Database / Autonomous DB | |
| 57 | +| Native T-SQL (SQL Server / Azure SQL) | High priority; MS Fabric requires Entra ID auth | |
| 58 | + |
| 59 | +### Publisher & Ecosystem |
| 60 | + |
| 61 | +| Area | Feature | |
| 62 | +|---|---| |
| 63 | +| **Explorer** | Dimensional index values in filter UI; field documentation display; cross-filtering between charts | |
| 64 | +| **Publisher** | Standalone Python MCP server; `malloy-pub` CLI; Windows/Linux support | |
| 65 | +| **Renderer** | Dark/light mode; CSS variables for embedding; chart legend consistency; `# area_chart`, `# pie_chart`, `# heatmap` | |
| 66 | +| **Python** | Ibis-style API: `ibis.malloy.connect(...)` with `s.dimensions()`, `s.measures()` selectors | |
| 67 | +| **Docs** | LLM-optimized documentation page; expanded `malloy-samples` | |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +## How to Influence This Roadmap |
| 72 | + |
| 73 | +| Channel | Best for | |
| 74 | +|---|---| |
| 75 | +| [malloydata/whatsnext](https://github.com/malloydata/whatsnext) | Formal language change proposals (WNs) | |
| 76 | +| [GitHub Discussions](https://github.com/malloydata/malloy/discussions) | RFCs, design conversations, questions | |
| 77 | +| [GitHub Issues](https://github.com/malloydata/malloy/issues) | Bug reports, concrete feature requests - 👍 votes signal demand | |
| 78 | +| [Slack `#feedback`](https://malloydata.github.io/slack) | Informal ideas and early feedback | |
| 79 | +| [Pull requests](https://github.com/malloydata/malloy/blob/main/CONTRIBUTING.md) | New database connectors especially welcome | |
0 commit comments