This release is a pre-release and may not be stable for production use.
Distributed Graph Flow
Graph Flow (DGF) is an open-source Python library to train, evaluate, and deploy Graph Neural Networks (GNNs) on tabular, relational, and temporal data. It is developed by the Google GNN team, the team behind TensorFlow GNN, and is its successor.
Graph Flow has two APIs:
- The Simple API is as easy to use as scikit-learn: one function call trains a GNN model from a graph and a target column, and the resulting model can be evaluated, used for predictions, and saved.
- The Advanced API is a set of composable building blocks (graph IO, samplers, feature normalizers, and JAX/Flax GNN layers). Like Lego bricks, you pick the ones you need and assemble them with your own code, including PyTorch Geometric models.
📖 Documentation: https://dgf.readthedocs.io/
This is not an officially supported Google product. This project is not eligible for the Google Open Source Software Vulnerability Rewards Program.
📦 Installation
To install DGF from PyPI, run:
pip install dgf -U
Graph Flow is available for Python 3.11–3.13 on Linux x86-64.
For the latest features, install the nightly build instead
(dgf-nightly, built daily from main):
pip install dgf-nightly -U
🔥 Why Graph Flow?
- Simple API: Train, evaluate, and save a GNN model in about 10 lines of Python, without prior GNN experience.
- Temporal graphs: Dynamic graphs and time-series features are supported. Time-aware sampling ensures that a model only sees information available before the prediction time.
- Scale: Train in memory on graphs with up to 1B edges on a single machine. For larger graphs, the distributed sampler (Apache Beam on Google Cloud Dataflow) scales to trillions of edges.
- Advanced API: Message-passing layers (MPNN, GAT, Graph Transformer), samplers, and normalizers are independent JAX/Flax building blocks for custom models.
- Interoperability: Convert graphs to PyTorch Geometric, TensorFlow, TF-GNN, and NetworkX.
- Deployment: Run inference in-process in Python, or export models to TensorFlow SavedModel (e.g., for Vertex AI).
😎 Minimal usage example
import dgf
# Download an example graph
graph, schema = dgf.io.fetch_ogb_graph("arxiv")
# Train a GNN model to predict the "labels" feature on the "nodes" nodeset
model = dgf.learning.train_node_model(
graph=graph,
schema=schema,
target_column="labels",
target_nodeset="nodes",
)
# Inspect training statistics, architecture, and schema
model.describe()
# Evaluate quality metrics
model.evaluate()
# Make low-latency predictions in-process
model.predict(graph, seed_node_idxs=[0, 1, 2])
# Save the model (architecture, weights, sampling config, training logs, etc.)
model.save("/tmp/model")
Output of model.describe()
Output of model.evaluate()
See the Getting Started tutorial for the complete walkthrough.
🤗 Need help?
- Read the documentation and the Q&A.
- Bugs & feature requests: Open a GitHub issue.
- Contact the team: Email us at distributed-graph-flow-contact@google.com.
Metadata
Release files for dgf-nightly 0.1.1.dev20261017
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dgf_nightly-0.1.1.dev20261017-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| dgf_nightly-0.1.1.dev20261017-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| dgf_nightly-0.1.1.dev20261017-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
Total release size: 13.8 MB
Release files / dgf_nightly-0.1.1.dev20261017-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | dgf_nightly-0.1.1.dev20261017-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c2490938afd3570b9e991a527b6651f42cae4860d55a5bd0cd60c2c4089175fd
|
|
BLAKE2b-256 checksum How to use checksums |
97efc300b9c6e0b8ca6a0124d01a2a7ea0a3f06091bf6f097c942643155eeca8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / dgf_nightly-0.1.1.dev20261017-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | dgf_nightly-0.1.1.dev20261017-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e6c19cbd4a4326f72fd438e16cb6706679be55b3d6ea5afca24b8db785dcad71
|
|
BLAKE2b-256 checksum How to use checksums |
53bde0d9cd62992bb36130e25d8038d681e751e312410f42ab0c2f5c75c83b85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / dgf_nightly-0.1.1.dev20261017-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | dgf_nightly-0.1.1.dev20261017-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
465ec3b200625b6c2422d26777075dd599cf75ba4d7af520d4db56af9d5a28b9
|
|
BLAKE2b-256 checksum How to use checksums |
9dc9651b9555332deb3b07a06edbc55625db11a954ef6f772a4f9194410a0ac7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logSecurity for dgf-nightly 0.1.1.dev20261017
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.
Full provenance
All 3 files in this release have been uploaded with provenance metadata.
Attestation for dgf_nightly-0.1.1.dev20261017-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logA 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.