Skip to main content

A high-performance data grid component for Plotly Dash

Project description

Dash Glide Grid

PyPI version License: MIT Python 3.9+ Dash 3.3+

Note: This project is under active development and not yet recommended for production use. Expect breaking changes until v1.0 is released.

A high-performance, fully-featured data grid component for Plotly Dash, powered by Glide Data Grid.

📖 Documentation & Interactive Examples

Why Dash Glide Grid?

Feature Dash Glide Grid Dash DataTable Dash AG Grid Community Dash AG Grid Enterprise
License MIT MIT MIT Commercial
Cost Free Free Free $999/developer + $750/deployment
Rendering Canvas DOM DOM DOM
Large Data 1M+ cells Good Good Good
Cell Types 23 3 6 7
Fill Handle
Copy/Paste Limited
Range Selection Limited
Undo/Redo
Sorting
Search
Filtering
Header Menu Support
Context Menu Support
Row Grouping
Pivoting
Master/Detail
Pagination
Custom JS Functions

Choose Dash Glide Grid when you need:

  • Excel-like editing (fill handle, copy/paste, range selection)
  • Blazing-fast canvas rendering for large datasets (1M+ cells)
  • Rich cell types (dropdowns, multi-select, range sliders, buttons) in a free, MIT-licensed package
  • A modern alternative to the deprecated Dash DataTable

Features

  • High Performance - Canvas-based rendering handles millions of rows smoothly
  • Rich Cell Types - Text, numbers, booleans, markdown, URIs, images, dropdowns, multi-select bubbles, and more
  • Excel-like Editing - Fill handle, copy/paste, undo/redo
  • Flexible Selection - Cell, row, column, and range selection modes
  • Sorting & Filtering - Built-in column sorting and header filter menus
  • Theming - Full theme customization at grid, row, column, and cell level
  • Column Groups - Organize columns under collapsible group headers
  • Cell Merging - Horizontal cell spanning
  • Row/Column Reordering - Drag-and-drop reordering
  • Frozen Rows - Pin rows to the top or bottom
  • Validation - Client-side cell validation with visual feedback
  • Search - Built-in search

Installation

pip install dash-glide-grid

Or with uv:

uv add dash-glide-grid

Requirements

  • Python 3.9+
  • Dash 3.3+

Quick Start

import dash
from dash import html
import dash_glide_grid as dgg

app = dash.Dash(__name__)

app.layout = html.Div([
    dgg.GlideGrid(
        id='grid',
        columns=[
            {'title': 'Name', 'id': 'name', 'width': 200},
            {'title': 'Age', 'id': 'age', 'width': 100},
            {'title': 'City', 'id': 'city', 'width': 150}
        ],
        data=[
            {'name': 'Alice', 'age': 30, 'city': 'New York'},
            {'name': 'Bob', 'age': 25, 'city': 'San Francisco'},
        ],
        height=400
    )
])

if __name__ == '__main__':
    app.run(debug=True)

Data Format

Use records format (compatible with df.to_dict('records')):

# From a list of dicts
data = [
    {'name': 'Alice', 'age': 30, 'active': True},
    {'name': 'Bob', 'age': 25, 'active': False}
]

# From pandas
data = df.to_dict('records')

Key Props

Prop Description
columns Column definitions with title, id, width, type, etc.
data List of row dicts
height Grid height in pixels
readonly Make the entire grid read-only
theme Custom theme object
fillHandle Enable Excel-like fill handle
copyPaste Enable copy/paste support
rowSelect Row selection: 'none', 'single', 'multi'
columnSelect Column selection: 'none', 'single', 'multi'
sortable Enable column sorting
showSearch Show search box
enableUndoRedo Enable undo/redo support
freezeTrailingRows Number of rows to freeze at bottom
columnGroups Group columns under headers

See the full documentation for all props and callbacks.

Examples

The examples/ folder contains 39 examples covering many features:

# Basic usage
python examples/01_basic_grid.py

# With uv
uv run examples/01_basic_grid.py

Then open http://localhost:8050 in your browser.

Highlights

See examples/README.md for the complete list.

Development

# Clone the repo
git clone https://github.com/benweinberg89/dash-glide-grid.git
cd dash-glide-grid

# Install dependencies
npm install
uv sync

# Build the component
npm run build

# Run an example
uv run examples/01_basic_grid.py

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License - see LICENSE

Credits

Built on Glide Data Grid by Glide.

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

dash_glide_grid-0.1.16.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

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

dash_glide_grid-0.1.16-py3-none-any.whl (2.2 MB view details)

Uploaded Python 3

File details

Details for the file dash_glide_grid-0.1.16.tar.gz.

File metadata

  • Download URL: dash_glide_grid-0.1.16.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for dash_glide_grid-0.1.16.tar.gz
Algorithm Hash digest
SHA256 fdea2cf5acddc73856b991411ed618bf1d6eed2c114dde17c6049334f684201b
MD5 42cefbedbdebef9b0c4a6ce06089fa1a
BLAKE2b-256 70e0ec535932dcb173645b9b9101793195e1636c8fb545c75a22273dd012ebed

See more details on using hashes here.

File details

Details for the file dash_glide_grid-0.1.16-py3-none-any.whl.

File metadata

File hashes

Hashes for dash_glide_grid-0.1.16-py3-none-any.whl
Algorithm Hash digest
SHA256 dd88def29b1f997141671d0d35c58281572524b87cd199057914b226ba5e9d53
MD5 6276598a5449bb496e4d09a1491cc177
BLAKE2b-256 1efbf4c8b278e4350ca6bc6c10fcdeb662d3a2ae1db06aa21e621bc579b538ab

See more details on using hashes here.

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