Skip to main content

A Fast, Declarative ETL for Graph Databases.

Project description

Nodestream

Nodestream Logo

A Declarative framework for Building, Maintaining, and Analyzing Graph Data 🚀

Continuous Integration codecov ApacheV2 License

All Contributors

Nodestream allows you to work with graphs declaratively. With nodestream, you unlock a bounty of features purpose built for working with graphs. Semantically model your graph and map labels and properties directly to your data. Better yet, you are not locked into your choices. Nodestream works with you as you evolve your application by providing migration utilities to change your data schema. Nodestream even decouples you from the underyling database technology so you can even change databases.

Highlights

  • Connect to data sources like Kafka, files, apis, and more!
  • Evolve your application over time with database migrations (Docs)
  • Use your favorite Graph Database to fit any tech stack (Docs)
  • Clean up your own data with TTLs (Docs)
  • Infinite Customizability Since Nearly Everything is Pluggable!

WebsiteBlogDiscussionsContributingContributing Developer GuidesTalks from Maintainers

Features

Nodestream has a pleasant CLI interface to get new projects up and running fast.

Demo

Not a fan of the defaults? You can change out databases very easily

Using Another Database

Then you can start to model your data and nodestream will evolve your database for you. No more messing with constraints or writing database queries.

Running Migrations

Getting Started

Conviced? Install nodestream with pip to get started.

  pip install nodestream
  nodestream new --database neo4j my_project && cd my_project
  nodestream run sample -v

We highly recommend following our tutorials here

Packages

Nodestream is built on a Highly Pluggable and Modular Architecture. Thus... we have a lot of packages to keep track of.

Package Description Version
nodestream The core library. Declarative ingestion. PyPI Version
nodestream-plugin-neo4j Neo4j database connector. PyPI Version
nodestream-plugin-neptune AWS Neptune database connector. PyPI Version
nodestream-plugin-dotenv Adds DotEnv integration. PyPI Version
nodestream-plugin-pedantic A series of lints to enforce reasonable naming standards, etc. PyPI Version
nodestream-plugin-shell An integration with nodestream to run shell commands. PyPI Version
nodestream-plugin-sbom Import SBOM files in CycloneDX and SPDX into an opinionated graph data model. PyPI Version
nodestream-plugin-akamai Parse Akamai properties, redirect configs, and much more and ingests them. PyPI Version
nodestream-plugin-k8s In incubation. A plugin that orchestrates Nodestream on k8s. PyPI Version

Contributors

Nodestream is a community project. We welcome all contributions. Be sure to checkout or Contributing Docs and our Code of Conduct before contributing.

Zach Probst
Zach Probst

💻 👀 🚧
Chad Cloes
Chad Cloes

💻 👀 🚧
asantos4
asantos4

💻 👀 🚧
Grant Hoffman
Grant Hoffman

💻 👀
khneal
khneal

💻
orozen
orozen

💻
Sophia Don Tranho
Sophia Don Tranho

💻
bechbd
bechbd

💻
yasonk
yasonk

💻 👀
Stuart Macleod
Stuart Macleod

💻
Cole Greer
Cole Greer

💻
Austin Lucas
Austin Lucas

💻
rreddy2
rreddy2

💻
Jon Bristow
Jon Bristow

💻
Add your contributions

Contributing

Need a quick reference guide on how to contribute? Here you go!

Getting Setup

To get started you'll need to install poery.

curl -sSL https://install.python-poetry.org | python3 -

You then can install the project dependencies with the following command:

poetry install

No need to active a virtual environment. Poetry handles that for you with poetry run and poetry shell.

Running Tests

To run tests for the entire project, run the following command:

poetry run pytest

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nodestream-0.15.1.tar.gz (121.9 kB view details)

Uploaded Source

Built Distribution

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

nodestream-0.15.1-py3-none-any.whl (182.5 kB view details)

Uploaded Python 3

File details

Details for the file nodestream-0.15.1.tar.gz.

File metadata

  • Download URL: nodestream-0.15.1.tar.gz
  • Upload date:
  • Size: 121.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nodestream-0.15.1.tar.gz
Algorithm Hash digest
SHA256 2a52a4fd87c56b0016b5fb7bda00129e8bd785d724767a3e7895444a8174d547
MD5 d4c8c194d1c6281e513745c3b76993b2
BLAKE2b-256 132951159bf23bd74aa033bf9b82ea2395d2930bf238b755831faa23c8c67aa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for nodestream-0.15.1.tar.gz:

Publisher: release.yaml on nodestream-proj/nodestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nodestream-0.15.1-py3-none-any.whl.

File metadata

  • Download URL: nodestream-0.15.1-py3-none-any.whl
  • Upload date:
  • Size: 182.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nodestream-0.15.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ffa9f1d40b106fb25484d6412a7a3cbdb9be01af0f2c3d78a230c9f5f7227872
MD5 347efe88fdd591b0707638291fe0bcee
BLAKE2b-256 1bb018522708b1e76e55c250dab90139d08207494067baa914b3b0f117024e85

See more details on using hashes here.

Provenance

The following attestation bundles were made for nodestream-0.15.1-py3-none-any.whl:

Publisher: release.yaml on nodestream-proj/nodestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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