Skip to main content

Bliq

Bliq is a lightweight dataset catalog that provides versioning, efficient storage, and easy querying.

Bliq supports local filesystem, S3 and Azure Blob Storage for data storage, as well as SQLite and PostgreSQL for metadata.

Bliq consists of three principal components:

  • client - lightweight CLI and a Python library
  • API - a backend server in Python
  • UI - a frontend in Node.js

Run in Docker

The simplest way to run API and UI is using Docker image.

-- TODO: publish image, add example

For detaild instructions and examples, see [Docker.md].

Local installation

Client Only (Default)

For users who want to connect to existing Bliq servers:

pip install bliq

This installs only the client library with minimal dependencies (requests, pandas, pyarrow).

With Server

To run your own Bliq server:

pip install bliq[server]

This includes FastAPI, uvicorn, and database management tools.

With Storage Backends

# PostgreSQL support
pip install bliq[server,postgresql]

# S3 support
pip install bliq[server,s3]

# Azure Blob Storage support
pip install bliq[server,azure]

# Everything
pip install bliq[all]

Quick Start

Using the Client

from bliq import BliqClient
import pandas as pd

# Connect to server
client = BliqClient("http://localhost:8000")

# Create a dataset
df = pd.DataFrame({
    "id": [1, 2, 3],
    "name": ["Alice", "Bob", "Charlie"],
    "age": [25, 30, 35]
})

result = client.create("team/users", "User data", df)
print(f"Created: {result}")  # team/users/v1

# Load the dataset
df = client.load("team/users/v1")
print(df)

# Add more data (creates new version)
new_data = pd.DataFrame({
    "id": [4],
    "name": ["David"],
    "age": [40]
})

result = client.extend("team/users/v1", new_data)
print(f"Extended: {result}")  # team/users/v2

# Query with filtering
df = client.load("team/users/v2",
                 columns=["name", "age"],
                 filter="age > 30",
                 limit=10)

# List all datasets
datasets = client.list(namespace="team")
for ds in datasets:
    print(f"{ds["name"]}: {ds["row_count"]} rows")

# Get detailed info
info = client.describe("team/users/v2")
print(info)

# Delete when done
client.erase("team/users/v1")  # Delete specific version
client.erase("team/users")     # Delete all versions

Running the API

# Start server (runs migrations automatically)
bliq serve

# Custom port
bliq serve --port 9000

# Development mode with auto-reload
bliq serve --reload

The server will be available at http://localhost:8000 with:

  • REST API: http://localhost:8000/api/v1/*
  • API Docs: http://localhost:8000/docs
  • Health Check: http://localhost:8000/health

Configure via environment variables:

# Metadata database (default: SQLite)
export METASTORE_URL="postgresql://user:pass@localhost:5432/bliq"

# Dataset storage (default: local filesystem)
export DATASTORE_URL="s3://my-bucket/datasets"

# For S3
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."

# For Azure
export AZURE_STORAGE_CONNECTION_STRING="..."

# Start server
bliq serve

Running the UI

cd frontend
npm run dev

The UI will be available at http://localhost:5173

CLI Commands

# Run database migrations
bliq migrate

# Check migration status
bliq migration-status

# List datasets
bliq list-datasets
bliq list-datasets --namespace team

# Show dataset details
bliq show-dataset team/users/v1

# Start server
bliq serve

Docker Deployment

For production deployments with web UI:

# Build image
docker build -f Dockerfile -t bliq:latest .

# Run with default settings (SQLite + local storage)
docker run -d \
  --name bliq \
  -p 8000:8000 \
  -v bliq-data:/data \
  bliq:latest

# Run with PostgreSQL + S3
docker run -d \
  --name bliq \
  -p 8000:8000 \
  -e METASTORE_URL="postgresql://user:pass@postgres:5432/bliq" \
  -e DATASTORE_URL="s3://bucket/path" \
  -e AWS_ACCESS_KEY_ID="..." \
  -e AWS_SECRET_ACCESS_KEY="..." \
  bliq:latest

Metadata

Release files for bliq 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bliq 0.1.0
File Size Uploaded Provenance Actions
bliq-0.1.0.tar.gz 15.0 MB Without provenance Details for bliq-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bliq 0.1.0
File Interpreter ABI Platform Actions
bliq-0.1.0-py3-none-any.whl Python 3 none any Details for bliq-0.1.0-py3-none-any.whl

Total release size: 15.0 MB

Release files / bliq-0.1.0.tar.gz

Download URL bliq-0.1.0.tar.gz
Size 15.0 MB
Tags Source
SHA-256 checksum
How to use checksums
bb5545505c47803e60738a37c0e3b9b2dd480ee4daddede01d2179eeb7bb8fe3
BLAKE2b-256 checksum
How to use checksums
86d550c25c822d616dcd09043996647e86da3495a97c6289dd912fc615b68329
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.4

Release files / bliq-0.1.0-py3-none-any.whl

Download URL bliq-0.1.0-py3-none-any.whl
Size 24.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c337dd6bab3b7fd06025049ecade97f80a901943e1677aaecd86fc837cd4df8f
BLAKE2b-256 checksum
How to use checksums
7f74b9493a2baa37cdddf2aa315cdd64f814adaf2e2d30631964c24e588436d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.4

Security for bliq 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page