Skip to content

GraFlo — Graph Schema & Transformation Language (GSTL) graflo logo

Python PyPI version PyPI Downloads License: BSL pre-commit DOI

GraFlo is a manifest-driven schema and ingestion layer for labeled property graphs (LPGs). Write a GraphManifest (YAML or Python) once — it defines vertices, edges, typed properties, identities, and DB profile — then infer, validate, migrate, and load into any supported graph engine.

Start here

Section What you'll find
Getting Started Install, quickstart, and your first manifest
Concepts Architecture, schema, ingestion pipeline, connectors
Guides Task-oriented walkthroughs (export, API wiring, identity inference, …)
Examples Fifteen runnable examples with sample data
API Reference Auto-generated Python API docs

Highlights

  • One manifest, many backends — ArangoDB, Neo4j, TigerGraph, FalkorDB, Memgraph, NebulaGraph, PostgreSQL, or a GraFlo file backend on disk.
  • Graph DB migration — Move Neo4j, ArangoDB, or a file backend to any supported target (including PostgreSQL) with GraphEngine.migrate_graph() — no manifest required. See Graph DB migration guide.
  • Explicit identities — upsert on keys instead of blind duplication.
  • Reusable ingestion — actor pipelines bind to files, SQL, SPARQL/RDF, APIs, or in-memory batches.
  • Schema as contract — validated at finish_init; migrations via migrate_schema.
  • Manifest as linked data — export/restore as RDF via the GraFlo ontology.

Contributing

We welcome contributions! See the Contributing Guide for setup and workflow.