{"id":13529140,"url":"https://github.com/neo4j/neo4j-java-driver","last_synced_at":"2026-02-19T13:01:01.107Z","repository":{"id":30453827,"uuid":"34007506","full_name":"neo4j/neo4j-java-driver","owner":"neo4j","description":"Neo4j Bolt driver for Java","archived":false,"fork":false,"pushed_at":"2025-12-09T13:30:26.000Z","size":15884,"stargazers_count":342,"open_issues_count":0,"forks_count":153,"subscribers_count":74,"default_branch":"6.x","last_synced_at":"2026-02-17T00:49:42.651Z","etag":null,"topics":["bolt","database","driver","java","neo4j","neo4j-driver"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neo4j.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-04-15T17:08:15.000Z","updated_at":"2026-02-12T15:25:25.000Z","dependencies_parsed_at":"2023-10-24T14:27:50.402Z","dependency_job_id":"1bada18e-8615-44fe-aebf-5175ea24dace","html_url":"https://github.com/neo4j/neo4j-java-driver","commit_stats":{"total_commits":1930,"total_committers":62,"mean_commits":"31.129032258064516","dds":0.7823834196891192,"last_synced_commit":"5c9a7c2bd7a0b7d09d7277c6cceb7edc5085c40f"},"previous_names":[],"tags_count":199,"template":false,"template_full_name":null,"purl":"pkg:github/neo4j/neo4j-java-driver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fneo4j-java-driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fneo4j-java-driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fneo4j-java-driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fneo4j-java-driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neo4j","download_url":"https://codeload.github.com/neo4j/neo4j-java-driver/tar.gz/refs/heads/6.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j%2Fneo4j-java-driver/sbom","scorecard":{"id":679502,"data":{"date":"2025-08-11","repo":{"name":"github.com/neo4j/neo4j-java-driver","commit":"e6187742f82f54bb37962c0999316939c34349f0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.8,"checks":[{"name":"Maintained","score":10,"reason":"23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/neo4j/.github/SECURITY.md:1","Info: Found linked content: github.com/neo4j/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/neo4j/.github/SECURITY.md:1","Info: Found text in security policy: github.com/neo4j/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: benchkit/Dockerfile:1","Warn: containerImage not pinned by hash: benchkit/Dockerfile:5: pin your Docker image by updating eclipse-temurin:17-jre to eclipse-temurin:17-jre@sha256:3579917f5d48055c2d88b302b59dc809c28dcab8ba9bd8805446b5b46c0d9e49","Warn: containerImage not pinned by hash: testkit-tests/src/main/docker/Dockerfile:1: pin your Docker image by updating python:3.10.0b4-buster to python:3.10.0b4-buster@sha256:abea22310fe601fee5aaa5c2f5e5341ff309d25a0029892fb4630a5427f8b3c2","Warn: containerImage not pinned by hash: testkit/Dockerfile:1: pin your Docker image by updating debian:bullseye-slim to debian:bullseye-slim@sha256:849d9d34d5fe0bf88b5fb3d09eb9684909ac4210488b52f4f7bbe683eedcb851","Info:   0 out of   4 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T22:37:31.598Z","repository_id":30453827,"created_at":"2025-08-21T22:37:31.598Z","updated_at":"2025-08-21T22:37:31.598Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29614585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T10:52:55.328Z","status":"ssl_error","status_checked_at":"2026-02-19T10:52:26.323Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bolt","database","driver","java","neo4j","neo4j-driver"],"created_at":"2024-08-01T07:00:33.699Z","updated_at":"2026-02-19T13:01:01.097Z","avatar_url":"https://github.com/neo4j.png","language":"Java","readme":"# Neo4j Java Driver\n\nThis repository holds the official Java Driver for Neo4j.\n\nIt works with both single instance and clustered databases.\n\nNetwork communication is handled using [Bolt Protocol](https://7687.org/).\n\n## Supported Driver Series\n\n| Driver Series | Supported Java Runtime versions | Status                      | Changelog                                                             |\n|---------------|---------------------------------|-----------------------------|-----------------------------------------------------------------------|\n| 6.x           | 17                              | Primary development branch. | [link](https://github.com/neo4j/neo4j-java-driver/wiki/6.x-changelog) |\n| 5.x           | 17                              | Maintenance.                | [link](https://github.com/neo4j/neo4j-java-driver/wiki/5.x-changelog) |\n| 4.4           | 8, 11                           | Maintenance.                | [link](https://github.com/neo4j/neo4j-java-driver/wiki/4.4-changelog) |\n\n## Server Compatibility\n\nThe compatibility with Neo4j Server versions is documented in the [Neo4j Knowledge Base](https://neo4j.com/developer/kb/neo4j-supported-versions/).\n\n## Preview features\n\nThe preview feature is a new feature that is a candidate for a future \u003cabbr title=\"Generally Available\"\u003eGA\u003c/abbr\u003e \nstatus.\n\nIt enables users to try the feature out and maintainers to refine and update it.\n\nThe preview features are not considered to be experimental, temporary or unstable.\n\nHowever, they may change more rapidly, without following the usual deprecation cycle.\n\nMost preview features are expected to be granted the GA status unless some unexpected conditions arise.\n\nDue to the increased flexibility of the preview status, user feedback is encouraged so that it can be considered before\nthe GA status.\n\nEvery feature gets a dedicated [GitHub Discussion](https://github.com/neo4j/neo4j-java-driver/discussions/categories/preview-features) \nwhere feedback may be shared.\n\n## Usage\n\nThis section provides general information for engineers who are building Neo4j-backed applications.\n\n### The `pom.xml` file\n\nThe driver is distributed exclusively via [Maven](https://search.maven.org/).\nTo use the driver in your Maven project, include the following within your `pom.xml` file:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.neo4j.driver\u003c/groupId\u003e\n    \u003cartifactId\u003eneo4j-java-driver\u003c/artifactId\u003e\n    \u003cversion\u003ex.y.z\u003c/version\u003e\n\u003c/dependency\u003e\n```\nHere, `x.y.z` will need to be replaced with the appropriate driver version.\nIt is generally recommended to use the latest driver version wherever possible.\nThis ensures access to new features and recent bug fixes.\nAll available versions of this driver can be found at\n[Maven Central](https://mvnrepository.com/artifact/org.neo4j.driver/neo4j-java-driver) or\n[Releases](https://github.com/neo4j/neo4j-java-driver/releases).\n\n### Java Platform Module System\n\nBoth `neo4j-java-driver` and `neo4j-java-driver-all` artifacts have `org.neo4j.driver` module name.\n\nStarting from version 5.0 the `neo4j-java-driver` includes an explicit module declaration ([module-info.java](driver/src/main/java/module-info.java)).\n\nThe `neo4j-java-driver-all` includes an explicit module declaration ([module-info.java](bundle/src/main/jpms/module-info.java)) starting from version 5.7.\n\n### Example\n\nTo run a simple query, the following can be used:\n```java\nvar authToken = AuthTokens.basic(\"neo4j\", \"password\");\ntry (var driver = GraphDatabase.driver(\"bolt://localhost:7687\", authToken)) {\n    var result = driver.executableQuery(\"CREATE (n)\").execute();\n    System.out.println(result.summary().counters().nodesCreated());\n}\n```\n\nFor full applications, a single ``Driver`` object should be created with application-wide scope and lifetime.\nThis allows full utilization of the driver connection pool.\nThe connection pool reduces network overhead added by sharing TCP connections between subsequent transactions.\nNetwork connections are acquired on demand from the pool when running Cypher queries, and returned back to connection pool after query execution finishes.\nAs a result of this design, it is expensive to create and close a ``Driver`` object.\n``Session`` objects, on the other hand, are very cheap to use.\n\n### Thread Safety\n\n``Driver`` objects are thread-safe, but ``Session`` and ``Transaction`` objects should only be used by a single thread.\n\n### Further reading\nCheck out our [Wiki](https://github.com/neo4j/neo4j-java-driver/wiki) for detailed and most up-to-date manuals, driver API documentations, changelogs, etc.\n\n### Bug Report\nIf you encounter any bugs while using this driver, please follow the instructions in our [Contribution Guide](https://github.com/neo4j/neo4j-java-driver/blob/1.6/CONTRIBUTING.md#need-to-raise-an-issue)\nwhen raising an issue at [Issues](https://github.com/neo4j/neo4j-java-driver/issues).\n\nWhen reporting, please mention the versions of the driver and server, as well as the server topology (single instance, causal cluster, etc).\nAlso include any error stacktraces and a code snippet to reproduce the error if possible, as well as anything else that you think might be helpful.\n\n## For Driver Engineers\n\nThis section targets users who would like to compile the driver source code on their own machine for the purpose of, for example, contributing a PR.\nBefore contributing to this project, please take a few minutes to read our [Contribution Guide](https://github.com/neo4j/neo4j-java-driver/blob/1.6/CONTRIBUTING.md#want-to-contribute).\n\n### Java Version\n\nFor the 6.x Driver Series, the source code _must_ compile on Java 21 for Java 17 runtime.\n\nFor the 5.x Driver Series, the source code _must_ compile on Java 17.\n\nFor the 4.x Driver Series, the compilation requires Java 8.\n\n### Building\n\nThe source code here reflects the current development status of a new driver version.\n\nTo use the driver in a project, please use the released driver via Maven Central or check out the code with git tags of corresponding versions instead.\n\n#### Running Tests and Creating a Package\n\nThe following command may be used to unit test and install artifacts without running integration tests:\n```\nmvn clean install -DskipITs -P skip-testkit\n```\n\nIntegration tests have the following prerequisites:\n- Docker\n- [`Testkit`](https://github.com/neo4j-drivers/testkit)\n\nTestkit that is a tooling that is used to run integration tests for all official Neo4j drivers.\nIt can be executed using Docker during Maven build and in such case does not require additional setup. See the instructions below for more details.\n\nThere are 2 ways of running Testkit tests:\n1. Using the `testkit-tests` module of this project.\n2. Manually cloning Testkit and running it directly.\n\n##### Using the testkit-tests module\n\nThe `testkit-tests` module will automatically check out Testkit and run it during Maven build.\n\nPrerequisites:\n- Docker\n- `/var/run/docker.sock` available to be passed through to running containers. \n  This is required because Testkit needs access to Docker in order to launch additional containers.\n- The driver project location must be sharable with Docker containers as Testkit container needs to have access to it.\n\nMake sure to run build for the whole project and not just for `testkit-tests` module. Sample commands:\n- `mvn clean verify` - runs all tests.\n- `mvn clean verify -DskipTests` - skips all tests.\n- `mvn clean verify -DtestkitArgs='--tests STUB_TESTS'` - runs all project tests and Testkit stub tests.\n- `mvn clean verify -DskipTests -P testkit-tests` - skips all project tests and runs Testkit tests.\n- `mvn clean verify -DskipTests -DtestkitArgs='--tests STUB_TESTS'` - skips all project tests and runs Testkit stub tests.\n- `mvn clean verify -DskipITs -DtestkitArgs='--tests STUB_TESTS'` - skips all integration tests and runs Testkit stub tests.\n- `mvn clean verify -DskipTests -DtestkitArgs='--run-only-selected tests.neo4j.test_session_run.TestSessionRun.test_can_return_path --configs 4.4-enterprise-neo4j'` - skips all project tests and runs selected Testkit test on specific configuration.\n\nIf you interrupt Maven build, you have to remove Testkit containers manually.\n\n##### Running Testkit manually\n\nPrerequisites:\n- Docker\n- Python3\n- Git\n\nClone Testkit and run as follows:\n\n```\ngit clone git@github.com:neo4j/neo4j-java-driver.git \ngit clone git@github.com:neo4j-drivers/testkit.git\ncd testkit\nTEST_DRIVER_NAME=java \\\nTEST_DRIVER_REPO=`realpath ../neo4j-java-driver` \\\nTEST_DOCKER_RMI=true \\\npython3 main.py --tests UNIT_TESTS --configs 4.3-enterprise\n```\n\nTo run additional Testkit test, specify `TESTKIT_TESTS`:\n\n```\nTEST_DRIVER_NAME=java \\\nTEST_DRIVER_REPO=`realpath ../neo4j-java-driver` \\\nTEST_DOCKER_RMI=true \\\npython3 main.py --tests TESTKIT_TESTS UNIT_TESTS --configs 4.3-enterprise\n````\n\nOn Windows or in the absence of a Bash-compatible environment, the required steps are probably different.\nA simple `mvn clean install` will require admin rights on Windows, because our integration tests require admin privileges to install and start a service.\n\nIf all of this fails and you only want to try out a local development version of the driver, you could skip all tests like this:\n\n```\nmvn clean install -DskipTests\n```\n","funding_links":[],"categories":["Bolt","Connectors"],"sub_categories":["Bolt"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo4j%2Fneo4j-java-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneo4j%2Fneo4j-java-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo4j%2Fneo4j-java-driver/lists"}