Overview of Mosaic packages
mainThe Mosaic ecosystem is divided into several functional areas:
Core Architecture (packages/mosaic)
mosaic-core: Contains the central coordinator, parameters, selections (for linking scalar values or query predicates), and filter groups with materialized views.mosaic-sql: An API for constructing and analyzing SQL queries. Query objects can be coerced into SQL strings.
vgplot Libraries (packages/vgplot)
vgplot is a visualization grammar API that integrates multiple Mosaic packages. For most applications, you can use @uwdata/vgplot alone.
vgplot: A high-level API for building interactive dashboards. It re-exports much ofmosaic-core,mosaic-sql,mosaic-plot, andmosaic-inputs.mosaic-inputs: Standalone components like input menus, text search boxes, and sortable data tables.mosaic-plot: An interactive grammar of graphics built on Observable Plot. It allows marks (plot layers) to push heavy processing (like binning or regression) down to the database.mosaic-spec: Allows defining Mosaic applications declaratively using JSON or YAML.widget: A Jupyter widget for generating web-based visualizations from Pandas, Polars, or DuckDB connections.
DuckDB Servers (packages/server)
duckdb-server(Python): A local DuckDB instance supporting Web Sockets or HTTP, returning Apache Arrow or JSON. (Recommended for most users).duckdb-server-rust(Rust): Similar to the Python server but with additional support for HTTP/2.duckdb-server-go(Go): Similar to the Python server with experimental support for multi-tenant access control and function blocklisting.mosaic-duckdb(Node.js): A Promise-based Node.js API. Note: The maintainers recommend using the Python-basedduckdb-serverinstead due to quality issues with the Node.js DuckDB client.