{"id":19520018,"url":"https://github.com/malloydata/publisher","last_synced_at":"2026-04-26T23:01:11.459Z","repository":{"id":257463430,"uuid":"858346961","full_name":"malloydata/publisher","owner":"malloydata","description":"Publisher is the open-source semantic model server for the Malloy data language. It lets you define semantic models once — and use them everywhere.","archived":false,"fork":false,"pushed_at":"2026-04-21T21:28:14.000Z","size":78550,"stargazers_count":88,"open_issues_count":50,"forks_count":18,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-21T21:36:47.179Z","etag":null,"topics":["analytics","business-intelligence","data","data-modeling","data-transformation","data-visualization","database","semantic-modeling","transformation"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/malloydata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-16T18:29:09.000Z","updated_at":"2026-04-20T21:02:22.000Z","dependencies_parsed_at":"2024-09-16T23:37:15.919Z","dependency_job_id":"9bab4184-848f-4e15-beba-5ce4d8614f4e","html_url":"https://github.com/malloydata/publisher","commit_stats":null,"previous_names":["malloydata/publisher"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/malloydata/publisher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malloydata%2Fpublisher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malloydata%2Fpublisher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malloydata%2Fpublisher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malloydata%2Fpublisher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/malloydata","download_url":"https://codeload.github.com/malloydata/publisher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malloydata%2Fpublisher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32315712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T21:09:39.134Z","status":"ssl_error","status_checked_at":"2026-04-26T21:09:21.240Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","business-intelligence","data","data-modeling","data-transformation","data-visualization","database","semantic-modeling","transformation"],"created_at":"2024-11-11T00:23:19.094Z","updated_at":"2026-04-26T23:01:11.447Z","avatar_url":"https://github.com/malloydata.png","language":"TypeScript","readme":"# Publisher\n\n\u003ca href=\"https://github.com/malloydata/publisher/actions/workflows/build.yml\"\u003e![build](https://github.com/malloydata/publisher/actions/workflows/build.yml/badge.svg)\u003c/a\u003e\n\n**Publisher** is the open-source semantic model server for [Malloy](https://malloydata.dev). It serves Malloy models through REST and MCP APIs, enabling consistent data access for applications, tools, and AI agents.\n\n## Quick Start\n\n```bash\ngit clone https://github.com/credibledata/malloy-samples.git\ncd malloy-samples\nnpx @malloy-publisher/server --port 4000 --server_root .\n```\n\nOpen http://localhost:4000 to explore the sample models.\n\n## Documentation\n\nFull documentation is available at **[docs.malloydata.dev/documentation/user_guides/publishing](https://docs.malloydata.dev/documentation/user_guides/publishing/publishing)**:\n\n- [Getting Started](https://docs.malloydata.dev/documentation/user_guides/publishing/publishing) - Setup, deployment options, configuration\n- [Database Connections](https://docs.malloydata.dev/documentation/user_guides/publishing/connections) - BigQuery, Snowflake, Postgres, DuckDB, and more\n- [Explorer](https://docs.malloydata.dev/documentation/user_guides/publishing/explorer) - No-code visual query builder\n- [REST API](https://docs.malloydata.dev/documentation/user_guides/publishing/rest_api) - Build custom applications\n- [Publisher SDK](https://docs.malloydata.dev/documentation/user_guides/publishing/publisher_sdk) - Embed analytics in React apps\n- [MCP for AI Agents](https://docs.malloydata.dev/documentation/user_guides/publishing/mcp_agents) - Connect Claude and other AI assistants\n\n## How the Pieces Fit Together\n\n### Malloy\n\nThe core compiler and query execution engine. Malloy compiles `.malloy` files into SQL, executes queries against databases, and returns structured `Result` objects. Malloy is a pure JavaScript/TypeScript library with no UI or serving capabilities—it's the foundation everything else builds on.\n\n**Repository:** [github.com/malloydata/malloy](https://github.com/malloydata/malloy)\n\n### Malloy Render\n\nA visualization library that transforms Malloy `Result` objects into interactive tables, charts, and dashboards.\n\nWhen Malloy executes a query, the result includes both **data** and **rendering hints**—tags like `# bar_chart` or `# line_chart` that indicate how the data should be displayed. Malloy Render interprets these tags and produces the appropriate visualization.\n\n**Built with:** SolidJS and Vega/Vega-Lite. Available as both a JavaScript API (`MalloyRenderer`) and a `\u003cmalloy-render\u003e` web component.\n\n**Repository:** [github.com/malloydata/malloy/packages/malloy-render](https://github.com/malloydata/malloy/tree/main/packages/malloy-render)\n\n### Publisher\n\nAn open-source semantic model server for Malloy. Publisher makes Malloy models accessible over the network and provides a professional UI for data exploration.\n\n- **Server:** REST API for listing content, managing database connections, compiling models, and executing queries. Also provides an MCP API for AI agent integration. Supports [source filters](docs/filters.md) for model-driven, server-side query filtering.\n- **App:** Web interface for browsing Malloy content, exploring models with a no-code query builder, and viewing results.\n\n### Publisher SDK\n\nA React component library for building custom data applications powered by Publisher:\n\n- **API communication** — Talks to the Publisher Server via REST\n- **Query execution** — Submits queries and retrieves results\n- **Result visualization** — Integrates Malloy Render to display results\n- **UI components** — Pre-built pages for browsing projects, packages, models, and notebooks\n- **Source filters** — Automatically renders filter widgets for models with [`#(filter)` annotations](docs/filters.md)\n\nThe Publisher App is built entirely with the SDK, but the SDK is a standalone NPM package for building your own applications.\n\n## Architecture\n\nPublisher consists of four packages:\n\n| Package | Description |\n|---------|-------------|\n| **[packages/server](packages/server/)** | Express.js backend providing REST API (port 4000) and MCP API (port 4040). Loads Malloy packages, compiles queries, executes against databases. |\n| **[packages/sdk](packages/sdk/)** | React component library for building UIs that consume Publisher's REST API. |\n| **[packages/app](packages/app/)** | Reference implementation and production-ready data exploration tool built with the SDK. |\n| **[packages/python-client](packages/python-client/)** | Auto-generated Python SDK for the REST API. |\n\n\n## Development\n\nThis project uses [bun](https://bun.sh/) as the JavaScript runtime.\n\n```bash\ngit submodule init \u0026\u0026 git submodule update  # Get malloy-samples\nbun install\nbun run build:server-deploy\nbun run start                               # Production server\n```\n\n```bash\nbun run start:dev       # Dev server with watch\nbun run test            # Run tests\nbun run lint \u0026\u0026 bun run format  # Code quality\n```\n\n## Community\n\n- Join the [Malloy Slack](https://join.slack.com/t/malloy-community/shared_invite/zt-1kgfwgi5g-CrsdaRqs81QY67QW0~t_uw)\n- Report issues on [GitHub](https://github.com/malloydata/publisher/issues)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalloydata%2Fpublisher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmalloydata%2Fpublisher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalloydata%2Fpublisher/lists"}