{"id":28485529,"url":"https://github.com/orientechnologies/orientdb-gremlin","last_synced_at":"2025-06-28T07:32:34.469Z","repository":{"id":33913031,"uuid":"37631091","full_name":"orientechnologies/orientdb-gremlin","owner":"orientechnologies","description":"TinkerPop3 Graph Structure Implementation for OrientDB","archived":false,"fork":false,"pushed_at":"2025-06-17T14:59:00.000Z","size":1391,"stargazers_count":93,"open_issues_count":45,"forks_count":32,"subscribers_count":23,"default_branch":"3.2.x","last_synced_at":"2025-06-24T17:11:51.114Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"joeygibson/glide-demo","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orientechnologies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2015-06-18T01:44:23.000Z","updated_at":"2025-06-19T19:39:21.000Z","dependencies_parsed_at":"2024-01-09T16:30:50.892Z","dependency_job_id":"693f582d-1083-4824-96d0-1e80ea70b5af","html_url":"https://github.com/orientechnologies/orientdb-gremlin","commit_stats":null,"previous_names":["mpollmeier/orientdb-gremlin"],"tags_count":144,"template":false,"template_full_name":null,"purl":"pkg:github/orientechnologies/orientdb-gremlin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orientechnologies%2Forientdb-gremlin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orientechnologies%2Forientdb-gremlin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orientechnologies%2Forientdb-gremlin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orientechnologies%2Forientdb-gremlin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orientechnologies","download_url":"https://codeload.github.com/orientechnologies/orientdb-gremlin/tar.gz/refs/heads/3.2.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orientechnologies%2Forientdb-gremlin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262392268,"owners_count":23303868,"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":[],"created_at":"2025-06-08T00:11:13.220Z","updated_at":"2025-06-28T07:32:34.436Z","avatar_url":"https://github.com/orientechnologies.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# orientdb-gremlin\n\n[![REUSE status](https://api.reuse.software/badge/github.com/orientechnologies/orientdb-gremlin)](https://api.reuse.software/info/github.com/orientechnologies/orientdb-gremlin)\n\n[Apache TinkerPop](https://tinkerpop.apache.org/) 3 graph structure implementation for OrientDB. This started off as just a proof of concept, but thanks to a lot of help it's now in a really good shape and it has been officially adopted by the OrientDB team to be part of OrientDB `v3.x` and should eventually replace OrientDB's `graphdb` implementation that is still on TinkerPop 2. \n\nThe main area that need some more work is index lookups - currently it does find the right index for a simple case, e.g. `g.V.hasLabel(\"myLabel\").has(\"someKey\", \"someValue\")`. However if there are multiple indexes on the same property, or if there the traversal should better use a composite index, that's not handled well yet. If you feel inclined you can add these cases to the `OrientGraphIndexTest.java`. The function that looks up indexes is `OrientGraphStep.findIndex`.\n\n## Tests\n* you can run the standard tinkerpop test suite with `mvn install -P release`\n* there are some additional tests that you can run independently with `mvn test`\n* additionally there is a separate suite of tests in the `tests-scala` directory which you can run using `sbt test`\n* to automatically format the code (travis CI enforces a format check), just run `mvn clean install`\n\n## Usage\nHave a look at the tests-scala which demonstrates the usage. There's also an orientdb example project in [gremlin-scala-examples](https://github.com/mpollmeier/gremlin-scala-examples).\n\n## Labels and classes\nVertices and Edges are stored as classes based on their label. In order to allow vertices and edges to use the same label, the implementation prepends `V_` or `E_` in the class name:\n* vertex with label `user` -\u003e classname `V_user`\n* edge with label `user` -\u003e classname `E_user`\n\n## Migrations\nYou might want to use [orientdb-migrations](https://github.com/springnz/orientdb-migrations) to create a schema with indexes etc. \n\n## Release\n* upgrade version: remove SNAPSHOT (driver/pom.xml and tests-scala/build.sbt)\n* commit on branch, push, create PR on github\n* await green light from travis\n* merge PR on github\n* then execute\n```\n* mvn pull\n* mvn clean deploy -Prelease\n* git tag VERSION\n```\n* bump versions to next SNAPSHOT (pom.xml, build.sbt)\n* then\n```\n* git push\n* git push --tags\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forientechnologies%2Forientdb-gremlin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forientechnologies%2Forientdb-gremlin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forientechnologies%2Forientdb-gremlin/lists"}