A modern and flexible Neo4J driver for R that returns results as tibbles and integrates with tidyverse and graph packages.
neo4r is an R package that provides a modern driver for the Neo4J graph database. It enables R users to query Neo4J databases directly from R, returning results as tidy tibbles that integrate seamlessly with the tidyverse ecosystem. It solves the problem of bridging graph database queries with R's data analysis workflows.
R developers and data scientists who work with graph databases and want to incorporate Neo4J queries into their R-based data analysis pipelines, especially those using tidyverse tools.
Developers choose neo4r because it offers a native R experience with tibble outputs, modern pipe-friendly design, and built-in utilities for converting graph data to popular R graph packages, reducing the friction between Neo4J and R.
A Modern and Flexible Neo4J Driver
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Returns query results as tibbles, enabling seamless manipulation with dplyr and other tidyverse tools, as demonstrated in call_neo4j() examples that output lists of tibbles.
Supports both 'rows' and 'graph' output types, with utilities like unnest_nodes() and unnest_relationships() to flatten nested Neo4J data structures, providing control over data representation.
Uses an interactive R6 class for connections, with methods to ping, get version, and retrieve metadata, allowing dynamic updates as shown with reset_user() and reset_password().
Easily converts results to igraph or visNetwork objects for visualization, with README examples integrating ggraph and visNetwork for plotting graph data.
The README explicitly states that 'for now, the connection is only possible through http / https,' missing Neo4J's efficient Bolt protocol, which limits performance and security.
Marked with an 'experimental' lifecycle badge, indicating potential instability and breaking changes, and the disclaimer notes it's under active development, making it risky for production.
Requires use of unnesting functions like unnest_nodes() to handle nested lists in results, adding extra steps and complexity to data processing workflows.