CeleryViz Frontend Core
The core Flutter UI library for the CeleryViz project.
This package contains the rendering engine and UI logic behind CeleryViz. It consumes Celery events in JSON format and visualises task execution flow — showing tasks, their states, dependencies, and logs — in a clean, interactive interface. It is designed to be wrapped around other data-source projects rather than used standalone.
📦 Part of the CeleryViz ecosystem →
Quick Start
Clone and install dependencies:
git clone https://github.com/bhavya-tech/celeryviz_frontend_core.git
cd celeryviz_frontend_core
flutter pub get
Run the recommended example (reads a local .ndjson recording — no backend needed):
cd example/ndjson_example
flutter run
Or run against a live backend via Socket.IO:
cd example/socketio_datasource
flutter run
📖 Full development setup guide →
What it does
- Renders task flow: Visualises Celery tasks, their states, and dependencies from a stream of JSON events
- Real-time updates: Connects to a live backend over Socket.IO and renders tasks as they execute
- Offline replay: Accepts
.ndjsonrecordings so you can replay and inspect past task runs - Embeddable: Designed as a library — wrap it around any data source (Socket.IO, file, custom)
- Cross-platform: Built with Flutter; runs on web, Linux, macOS, and Windows
Examples
Two ready-to-run examples are included in the example/ folder:
| Example | Description |
|---|---|
ndjson_example |
Reads a saved .ndjson recording of Celery events and renders the visualisation. Best for UI development. |
socketio_datasource |
Connects to a running CeleryViz backend over Socket.IO for live task monitoring. |
Used by
This library powers celeryviz_with_lib, which packages the frontend for the CeleryViz Python library.
Roadmap
- Desktop app: A standalone desktop application for use in development environments or for connecting to remote servers
- Persistent backend: A backend that stores Celery events and serves them to the frontend on demand, enabling both real-time monitoring and historical debugging
Contributing
Contributions are welcome! Please read CONTRIBUTING.md before submitting a PR.
License
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to bhavyapeshavaria@gmail.com. All complaints will be reviewed and investigated promptly and fairly.
Libraries
- celeryviz_frontend_core
- Core module for the Celeryviz frontend.
- colors
- Module for defining colors used in the Celeryviz frontend.
- config/celeryviz_options
- config/celeryviz_options_config
- Configuration for the Celeryviz application.
- models/event
- Classes for the celery task events.
- models/pane_data
- models/task_data
- models/task_info
- painters/pane_board
- The dahsed lines between the parent task's task-spawned event and the child task's received event.
- painters/ruler_marking_painter
- screens/pane_screen
- services/data_source
- Data source which is used to load the data from the Celeryviz server.
- services/services
- General services used by the application.
- states/pane/pane_bloc
- states/pane/pane_events
- states/pane/pane_state
- states/pane_screen/pane_screen_bloc
- states/pane_screen/pane_screen_events
- states/pane_screen/pane_screen_state
- states/task_info/task_info_bloc
- states/task_info/task_info_event
- states/task_info/task_info_state
- Module for defining states for the task info side sheet.
- theme
- widgets/pane/panable_area/event_widgets
- This file contains the widgets for rendering the Celery events.
- widgets/pane/panable_area/helpers
- widgets/pane/panable_area/interactive_area
- widgets/pane/panable_area/panable_area
- The panable area handles the user interactions to move around the view.
- widgets/pane/panable_area/task_column
- The task column represents the Celery task and renders all its events.
- widgets/pane/pane
- All the visualizations are done by Pane
- widgets/pane/ruler
- Houses the widgets needed to show the vertical time ruler on the left side of the pane.
- widgets/pane/task_info/task_info_area
- Area widget for displaying task information.
- widgets/pane/task_info/task_info_container
- Container widget for displaying task information.
- widgets/pane/task_name_bar
- Houses the widgets needed to show the horizontal task name bar above the pane.