Skip to main content

A DuckDB server for Mosaic

Project description

Mosaic DuckDB Server

PyPi

A Python-based server that runs a local DuckDB instance and support queries over Web Sockets or HTTP, returning data in either Apache Arrow or JSON format.

Note: This package provides a local DuckDB server. To instead use DuckDB-WASM in the browser, use the wasmConnector in the mosaic-core package.

Installation and usage

We recommend running the server in an isolated environment with uvx. For example, to directly run the server, use:

uvx duckdb-server

Alternatively, you can install the server with pip install duckdb-server. Then you can start the server with duckdb-server.

Developer Setup

We use uv to manage our development setup.

Start the server with uv run duckdb-server. The server will not restart when the code changes.

Start the server in development with pnpm dev. The server restarts when you change the code.

Run uv run ruff check --fix and uv run ruff format to lint the code.

To run the tests, use uv run pytest.

To set up a local certificate for SSL, use https://github.com/FiloSottile/mkcert.

API

The server supports queries via HTTP GET and POST, and WebSockets. The GET endpoint is useful for debugging. For example, you can query it with this url.

Each endpoint takes a JSON object with a command in the type. The server supports the following commands.

exec

Executes the SQL query in the sql field.

arrow

Executes the SQL query in the sql field and returns the result in Apache Arrow format.

json

Executes the SQL query in the sql field and returns the result in JSON format.

Publishing

Run the build with uv build. Then publish with uvx twine upload --skip-existing ../../dist/*. We publish using tokens so when asked, set the username to __token__ and then use your token as the password. Alternatively, create a .pypirc file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

duckdb_server-0.29.0.tar.gz (13.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

duckdb_server-0.29.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file duckdb_server-0.29.0.tar.gz.

File metadata

  • Download URL: duckdb_server-0.29.0.tar.gz
  • Upload date:
  • Size: 13.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for duckdb_server-0.29.0.tar.gz
Algorithm Hash digest
SHA256 b34630cc0bcd953b1218b345e2b804b9c6e29d4fb5afac60c1febd52490fd7ef
MD5 11d958fc8f8b6c35c5adb7e2a01b0faa
BLAKE2b-256 44ef77b5c458be8e71469043cea2854fe310ec8007b43c5ad8de65ff284d344e

See more details on using hashes here.

Provenance

The following attestation bundles were made for duckdb_server-0.29.0.tar.gz:

Publisher: release.yml on uwdata/mosaic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file duckdb_server-0.29.0-py3-none-any.whl.

File metadata

  • Download URL: duckdb_server-0.29.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for duckdb_server-0.29.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8affa9c81b362a628b2e3c10ab64b8b1e507a1af6a04bb56afd0a4b28663e917
MD5 bffc46347bc9dd71dd25fcff8649f6d0
BLAKE2b-256 37b1f29a1538119d6060aa9fa879044cff9f13a4afb78fe6a44bbe3c514da8b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for duckdb_server-0.29.0-py3-none-any.whl:

Publisher: release.yml on uwdata/mosaic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page