explaingit

cube-js/cube

📈 Trending19,985RustAudience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

A semantic layer that sits between your databases and BI tools, defining business metrics once and exposing them through REST, GraphQL, and SQL APIs so every tool uses the same definitions.

Mindmap

mindmap
  root((Cube Core))
    What it does
      Defines metrics once
      Exposes via APIs
      Caches results fast
    Databases supported
      Snowflake
      BigQuery
      Postgres
      Databricks
    Use cases
      Embedded analytics
      Shared metrics
      AI agent access
    Tech stack
      Rust backend
      Node.js
      Docker

Things people build with this

USE CASE 1

Build embedded analytics dashboards inside your SaaS product that all use the same metric definitions.

USE CASE 2

Create a single source of truth for business metrics shared across multiple BI tools like Tableau, Looker, or Metabase.

USE CASE 3

Give AI agents and chatbots well-defined, governed access to your business data through standard APIs.

USE CASE 4

Query Snowflake, BigQuery, or Postgres with sub-second response times using built-in caching.

Tech stack

RustNode.jsDockerREST APIGraphQLSQL

Getting it running

Difficulty · hard Time to first run · 1h+

Requires Docker, database connection setup, and understanding of semantic layer configuration to see meaningful results.

Use freely for any purpose, including commercial use, as long as you include the Apache 2.0 license notice and document any changes you make.

In plain English

Cube Core is an open source semantic layer, a middle tier that sits between your databases and the tools or applications that query them. A semantic layer's job is to define business metrics, dimensions, and logic in one place (for example, what exactly "monthly active users" or "revenue" means for your organization) and then expose those definitions through standard APIs so that any BI tool, embedded analytics feature, or AI agent can use them consistently without each tool needing its own hardcoded SQL queries. The problem Cube Core solves is fragmentation: most business intelligence tools have their own proprietary semantic layer baked in, so metric definitions get duplicated and drift apart across tools. Cube Core decouples this layer and makes it reusable. It connects to SQL databases and cloud data warehouses including Snowflake, Databricks, BigQuery, Postgres, and query engines like Athena. Once connected, it exposes your data through REST, GraphQL, and SQL APIs with a built-in caching engine that delivers sub-second query responses even under high load. The quickest way to start is with Docker, a single command launches Cube Core locally, and a browser-based setup wizard guides configuration. You would use Cube Core when building embedded analytics into a product (dashboards inside your SaaS app), when you want a single source of truth for metrics shared across multiple BI tools, or when you want AI agents to have well-defined access to your business data. The backend is written in Rust and Node.js, and is licensed under Apache 2.0.

Copy-paste prompts

Prompt 1
How do I set up Cube Core with Docker and connect it to my Snowflake warehouse to expose metrics via REST API?
Prompt 2
Show me how to define a business metric like 'monthly active users' in Cube Core so it's reusable across all my BI tools.
Prompt 3
How can I embed a Cube Core dashboard into my React app so customers see real-time metrics without building custom SQL?
Prompt 4
What's the best way to configure caching in Cube Core to keep query responses under 1 second for high-traffic dashboards?
Prompt 5
How do I give my AI chatbot access to business data through Cube Core's GraphQL API with proper access controls?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.