Nessie is a plugin-based graph exploration and visualization platform written in Python. It provides a lightweight core runtime, a well-defined API contract, and a growing ecosystem of interchangeable plugins for sourcing, manipulating, and rendering graphs.
┌─────────────────────────────────────────────────────┐
│ nessie-platform │
│ (plugin registry & action dispatcher) │
└───────────────────────┬─────────────────────────────┘
│ depends on
▼
┌─────────────────────┐
│ nessie-api │
│ (shared contracts) │
└─────────────────────┘
│
┌─────────────┼──────────────┐
│ │ │
▼ ▼ ▼
Datasource Visualizer Manipulation
Plugins Plugins Plugins
The platform discovers and loads plugins at runtime via Python entry points (nessie_plugins). Plugins declare the actions they handle; the platform selects the best one through an optional prioritization plugin.
| Repository | Package | Description |
|---|---|---|
| Nessie | nessie-platform |
Core platform: plugin registry, action dispatcher, and prioritization engine. |
| nessie-api | nessie-api |
Shared models, interfaces, and contracts used by all plugins and the platform. |
| Repository | Package | Description |
|---|---|---|
| nessie-cli | nessie-cli |
Command-line interface for Nessie, built with a textX DSL. |
| nessie-web | nessie-web |
Plugin that renders the graph UI in a web browser using Jinja2 templates. |
| django-web-nessie | — | Django-based web client implementation for Nessie. |
Datasource plugins source a graph from an external system and expose it to the platform via the Source_* actions.
| Repository | Package | Description |
|---|---|---|
| nessie-npm-dependencies-plugin | nessie-npm-dependencies-plugin |
Builds a dependency graph starting from a given npm package by querying the npm registry. |
| nessie-python-datasource-plugin | nessie-python-datasource-plugin |
Sources a graph from a Python module or a JSON file. |
| nessie-relationaldb-datasource-plugin | nessie-relationaldb-datasource-plugin |
Loads a graph from a relational database. |
Visualizer plugins render a graph for the user.
| Repository | Package | Description |
|---|---|---|
| nessie-simple-visualizer-plugin | nessie-simple-visualizer-plugin |
Lightweight plugin for simple graph visualization. |
| neisse-graph-visualiser-block | nessie-block-visualiser |
Renders a graph as a blocks view, displaying all node and edge attributes. |
Manipulation plugins transform or filter an in-memory graph.
| Repository | Package | Description |
|---|---|---|
| nessie-graph-manipulation-plugin | nessie-graph-manipulation-plugin |
Provides graph filtering and manipulation operations. |
-
Install the platform and API:
pip install nessie-platform nessie-api
-
Install the plugins you need, for example:
pip install nessie-npm-dependencies-plugin nessie-web
-
Use the CLI (see nessie-cli) or embed the platform in your own application:
from nessie_platform import Platform platform = Platform() graph = platform.get_plugin("Source_Python").handle(action)
Plugins are discovered automatically via entry points — no manual registration required.
Each repository carries its own license. The core components use the Apache-2.0 license; some plugins use the MIT license. See the individual repositories for details.