{"id":14959366,"url":"https://github.com/neo4j/graph-data-science","last_synced_at":"2025-05-14T11:09:31.530Z","repository":{"id":38354839,"uuid":"219701790","full_name":"neo4j/graph-data-science","owner":"neo4j","description":"Source code for the Neo4j Graph Data Science library of graph algorithms.","archived":false,"fork":false,"pushed_at":"2025-04-09T06:26:47.000Z","size":95199,"stargazers_count":667,"open_issues_count":31,"forks_count":168,"subscribers_count":66,"default_branch":"2.13","last_synced_at":"2025-04-11T04:59:05.812Z","etag":null,"topics":["graph","graph-algorithms","graph-data-science","hacktoberfest","neo4j"],"latest_commit_sha":null,"homepage":"https://neo4j.com/docs/graph-data-science/current/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neo4j.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-05T09:05:52.000Z","updated_at":"2025-04-10T19:16:22.000Z","dependencies_parsed_at":"2023-10-20T23:15:16.416Z","dependency_job_id":"82c66af2-770b-4d32-857a-25d1519daba4","html_url":"https://github.com/neo4j/graph-data-science","commit_stats":{"total_commits":22595,"total_committers":85,"mean_commits":265.8235294117647,"dds":0.8917017039167957,"last_synced_commit":"1691c2533111145cba42e86d5cdb199a0f17a2fc"},"previous_names":[],"tags_count":238,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fgraph-data-science","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fgraph-data-science/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fgraph-data-science/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fgraph-data-science/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neo4j","download_url":"https://codeload.github.com/neo4j/graph-data-science/tar.gz/refs/heads/2.13","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345273,"owners_count":21088244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph","graph-algorithms","graph-data-science","hacktoberfest","neo4j"],"created_at":"2024-09-24T13:19:33.652Z","updated_at":"2025-05-14T11:09:31.518Z","avatar_url":"https://github.com/neo4j.png","language":"Java","readme":"= Neo4j Graph Data Science\n\nimage:https://github.com/neo4j/graph-data-science/actions/workflows/gradle_cipr.yml/badge.svg?branch=master[https://github.com/neo4j/graph-data-science/actions/workflows/gradle_cipr.yml]\nimage:https://img.shields.io/maven-central/v/org.neo4j.gds/proc.svg?label=Maven%20Central[https://search.maven.org/search?q=g:%22org.neo4j.gds%22%20AND%20a:%22proc%22]\nhttps://neo4j.com/docs/graph-data-science/preview/installation/[image:https://img.shields.io/badge/Documentation-latest-blue[Documentation]]\nhttps://discord.gg/neo4j[image:https://img.shields.io/discord/787399249741479977?label=Chat\u0026logo=discord\u0026style=flat-square[Discord]]\nhttps://community.neo4j.com/[image:https://img.shields.io/website?down_color=lightgrey\u0026down_message=offline\u0026label=Forums\u0026logo=discourse\u0026style=flat-square\u0026up_color=green\u0026up_message=online\u0026url=https%3A%2F%2Fcommunity.neo4j.com%2F[Forums online status]]\n\nThis repository hosts the open sources of the Neo4j Graph Data Science (GDS) library.\nThe GDS library is a plugin for the Neo4j graph database.\nGDS comprises graph algorithms, graph transformations, and machine learning pipelines, operated via Cypher procedures from within a Neo4j DBMS.\n\nThe Neo4j Graph Data Science library is the successor of the Neo4j Graph Algorithms library.\n\n\n== Downloading and installing releases\n\nThe latest releases of Neo4j Graph Data Science can always be found at the https://neo4j.com/graph-data-science-software/[Neo4j Graph Data Science Download Page].\nTo install the plugin into a Neo4j DBMS place the downloaded JAR file it in the `plugins` directory of your Neo4j database and restart the database.\nFor further instructions, see our https://neo4j.com/docs/graph-data-science/current/installation/[documentation].\n\nIf you are using Neo4j Desktop you can simply add the Graph Data Science library on the plugins page of your project.\n\nWhen installing GDS manually, please refer to the below compatibility matrix:\n\n.Compatibility matrix\n|===\n|GDS version | Neo4j version | Java Version\n|GDS 2.13    | Neo4j 5.26    | Java 21 \u0026 Java 17\n|===\n\nNOTE: Preview releases are not automatically made available in Neo4j Desktop. They need to be installed manually.\n\n\n== OpenGDS\n\nThe Neo4j Graph Data Science library as built and distributed by Neo4j includes the sources in this repository as well a suite of closed sources.\nNeo4j GDS is available to download and use under the constraints of its license.\n\nHowever, the sources in this repository can be also be assembled into a fully functioning library, which we call OpenGDS.\nOpenGDS is available to build, use, and extend under the constraints of the GNU Public License version 3.0.\n\n== Using the Pregel API\n\nTo build your own algorithms using the Pregel API (see at https://neo4j.com/docs/graph-data-science/current/algorithms/pregel-api/#algorithms-pregel-api-example[docs]), we recommend starting with the https://github.com/neo4j/graph-data-science/tree/2.7/examples/pregel-bootstrap[pregel-bootstrap project].\n\nNOTE: The module on `master` depends on the unpublished version of this library. The GDS version can be changed in the `build.gradle` of the `pregel-bootstrap` module.\n\n\n== Python client\n\nThe library comes with a Python client called `graphdatascience`. It enables users to write pure Python code to project graphs, run algorithms, as well as define and use machine learning pipelines in GDS.\n\nThe API is designed to mimic the GDS Cypher procedure API in Python code. It abstracts the necessary operations of the Neo4j Python driver to offer a simpler surface.\n\n`graphdatascience` is only guaranteed to work with GDS versions 2.0+.\n\nYou can find the `graphdatascience` source code https://github.com/neo4j/graph-data-science-client[here].\n\n\n== Developing with OpenGDS\n\nOpenGDS is also available on https://search.maven.org/search?q=g:org.neo4j.gds[Maven Central].\nIf you want to include the OpenGDS in your own project you can simply add it as a dependency.\n\nFor the most basic set of features, like graph loading and the graph representation, you need to include the `core` module:\n\n[source]\n----\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.neo4j.gds\u003c/groupId\u003e\n  \u003cartifactId\u003ecore\u003c/artifactId\u003e\n  \u003cversion\u003e2.13.4\u003c/version\u003e\n\u003c/dependency\u003e\n----\n\nThe algorithms are located in the `algo-common`, `algo` and `alpha-algo` modules:\n\n[source]\n----\n\u003c!-- Contains the basic algorithm infrastructure --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.neo4j.gds\u003c/groupId\u003e\n  \u003cartifactId\u003ealgo-common\u003c/artifactId\u003e\n  \u003cversion\u003e2.13.4\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Contains the productized algorithms --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.neo4j.gds\u003c/groupId\u003e\n  \u003cartifactId\u003ealgo\u003c/artifactId\u003e\n  \u003cversion\u003e2.13.4\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Contains some alpha algorithms --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.neo4j.gds\u003c/groupId\u003e\n    \u003cartifactId\u003ealpha-algo\u003c/artifactId\u003e\n    \u003cversion\u003e2.13.4\u003c/version\u003e\n\u003c/dependency\u003e\n----\n\nThe procedures are located in the `proc-common`, `proc` and `alpha-proc` modules:\n\n[source]\n----\n\u003c!-- Contains the basic procedure infrastructure --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.neo4j.gds\u003c/groupId\u003e\n  \u003cartifactId\u003eproc-common\u003c/artifactId\u003e\n  \u003cversion\u003e2.13.4\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Contains the productized algorithm procedures --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.neo4j.gds\u003c/groupId\u003e\n  \u003cartifactId\u003eproc\u003c/artifactId\u003e\n  \u003cversion\u003e2.13.4\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Contains some alpha algorithm procedures--\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.neo4j.gds\u003c/groupId\u003e\n    \u003cartifactId\u003ealpha-proc\u003c/artifactId\u003e\n    \u003cversion\u003e2.13.4\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Required by the write execution modes, this artifact is responsible for providing the various exporters --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.neo4j.gds\u003c/groupId\u003e\n  \u003cartifactId\u003eopen-write-services\u003c/artifactId\u003e\n  \u003cversion\u003e2.13.4\u003c/version\u003e\n\u003c/dependency\u003e\n----\n\n\n== Building the library\n\nInstalling JDKs::\n\nInstall https://sdkman.io/[SKDMAN]\n\n[source]\n----\ncurl -s \"https://get.sdkman.io\" | bash\nsource \"$HOME/.sdkman/bin/sdkman-init.sh\"\n----\n\nInstall both JDK 11 and JDK 17 Temurin:\n[source]\n----\nsdk install java 11.0.19-tem\nsdk install java 17.0.7-tem\n----\n\nNOTE: These versions were the latest at the time of writing these notes. To see a list of the available versions you can run `sdk list java`.\n\nNOTE: You do not need to set them as default JDK\n\nIf you want to opt out of `Temurin`, you can override `javaLanguageVendor` and `javaLanguageVersion` in your project-local `gradle.properties`.\nhttps://docs.gradle.org/current/javadoc/org/gradle/jvm/toolchain/JvmVendorSpec.html[List of Gradle supported language vendors]\n\nNOTE: The `javaLanguageVendor` and `javaLanguageVersion` overrides have to be installed locally on your system.\n\n\nOpenGDS uses the build tool `Gradle`.\nGradle is shipped with this repository using the Gradle Wrapper.\nThis means you can simply run any Gradle task by running `./gradlew TASK` from the repository root.\n\nBy default we build against Neo4j version `4.4.x`, which is defined in `public/gradle/dependencies.gradle`.\nTherefore, you either select JDK 11 or if you want to run with JDK 17, you add `-Pneo4jVersion=5.1.0`.\n\n\nRunning tests::\nTo run all tests you can simply run `./gradlew check`\n\nPackaging the library::\nTo package the library you can run `./gradlew :open-packaging:shadowCopy`.\nThis will create a bundled JAR called `open-gds-VERSION.jar` in the directory `build/distributions/`.\nTo use the bundled JAR in Neo4j, place the JAR file in the `plugins` directory of your Neo4j database and restart the database.\nFor further instructions, see our https://neo4j.com/docs/graph-data-science/current/installation/[documentation].\n\nPreview of the documentation::\nA preview of the latest documentation can be found at https://neo4j.com/docs/graph-data-science/preview/.\n\n\n== Contributing\n\nPlease report any bugs, concerns, or other questions as GitHub issues to this repository.\n\nFor more information see the link:CONTRIBUTING.md[contribution guidelines for this project].\n\n\n== License\n\nOpenGDS is licensed under the GNU Public License version 3.0.\nAll content is copyright © Neo4j Sweden AB.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo4j%2Fgraph-data-science","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneo4j%2Fgraph-data-science","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo4j%2Fgraph-data-science/lists"}