{"id":13792689,"url":"https://github.com/tarantool/cartridge-java","last_synced_at":"2025-08-21T20:33:07.836Z","repository":{"id":38309781,"uuid":"268650345","full_name":"tarantool/cartridge-java","owner":"tarantool","description":"Tarantool Cartridge Java driver for Tarantool versions 1.10+ based on Netty framework","archived":false,"fork":false,"pushed_at":"2024-11-01T11:30:15.000Z","size":3335,"stargazers_count":27,"open_issues_count":65,"forks_count":11,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-12-11T06:02:55.585Z","etag":null,"topics":["cartridge","driver","java","netty","tarantool"],"latest_commit_sha":null,"homepage":"https://tarantool.io","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/tarantool.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-01T22:56:14.000Z","updated_at":"2024-06-27T08:12:04.000Z","dependencies_parsed_at":"2023-12-26T20:35:37.052Z","dependency_job_id":"9b196f29-6a0e-4f94-8eb5-1f465a5d56d6","html_url":"https://github.com/tarantool/cartridge-java","commit_stats":null,"previous_names":["akudiyar/tarantool-java-driver"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fcartridge-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fcartridge-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fcartridge-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fcartridge-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tarantool","download_url":"https://codeload.github.com/tarantool/cartridge-java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230532448,"owners_count":18240792,"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":["cartridge","driver","java","netty","tarantool"],"created_at":"2024-08-03T22:01:15.066Z","updated_at":"2024-12-20T04:08:02.878Z","avatar_url":"https://github.com/tarantool.png","language":"Java","funding_links":[],"categories":["Connectors"],"sub_categories":["Administration"],"readme":"\u003ca href=\"http://tarantool.org\"\u003e\n   \u003cimg src=\"https://avatars2.githubusercontent.com/u/2344919?v=2\u0026s=250\"\nalign=\"right\"\u003e\n\u003c/a\u003e\n\n# Java driver for Tarantool Cartridge\n\n[![Tests Community](https://github.com/tarantool/cartridge-java/actions/workflows/tests-ce.yml/badge.svg)](https://github.com/tarantool/cartridge-java/actions/workflows/tests-ce.yml)\n[![Tests Enterprise](https://github.com/tarantool/cartridge-java/actions/workflows/tests-ee.yml/badge.svg)](https://github.com/tarantool/cartridge-java/actions/workflows/tests-ee.yml)\n\nJava driver for Tarantool Cartridge for Tarantool versions 1.10+ based on the asynchronous\n[Netty](https://netty.io) framework and official\n[MessagePack](https://github.com/msgpack/msgpack-java) serializer.\nProvides CRUD APIs for seamlessly working with standalone Tarantool\nservers and clusters managed by [Tarantool Cartridge](https://github.com/tarantool/cartridge)\nwith sharding via [vshard](https://github.com/tarantool/vshard).\n\n## Quickstart\n\nHere is an easy way to try using Tarantool together with this Java driver.\n\nLook at the [single instance test](/src/test/java/io/tarantool/driver/integration/SingleInstanceExampleIT.java) to start\nexperimenting with a single Tarantool server instance and a simple Java app.\nYou can set breakpoints and run it in \"debug\" mode using your IDE.\nTestcontainers library will start a [single instance Tarantool server](src/test/resources/single-instance.lua) for you.\nTry to manipulate data in Tarantool in real time through evaluating Java expressions in debug mode or using the Tarantool\nconsole.\n\nIf you want to start a simple Tarantool application manually, all you need is to install Tarantool and run it with this file:\n``` bash\ntarantool src/test/resources/single-instance.lua\n```\n\nExample of creating a `TarantoolClient` instance:\nhttps://github.com/tarantool/cartridge-java/blob/2f8e826deb9833a5deb6d21177527a46e8fdd039/src/test/java/io/tarantool/driver/integration/SingleInstanceExampleTest.java#L51-L59\n\nExample of the `TarantoolClient` API usage:\nhttps://github.com/tarantool/cartridge-java/blob/2f8e826deb9833a5deb6d21177527a46e8fdd039/src/test/java/io/tarantool/driver/integration/SingleInstanceExampleTest.java#L64-L79\n\nIf you use this code in another project don't forget to add a `cartridge-driver` dependency:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.tarantool\u003c/groupId\u003e\n  \u003cartifactId\u003ecartridge-driver\u003c/artifactId\u003e\n  \u003cversion\u003e0.14.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n## Advanced usage\n* [Using CRUD stored procedures](docs/ProxyTarantoolClient.md)  \n  Connecting to routers with [tarantool/crud](https://github.com/tarantool/crud) library.\n  It proxies space interface's methods to CRUD methods.\n* [Connecting to multiple instances](docs/MultiInstanceConnecting.md)  \n  Connecting to multiple Tarantool instances.\n* [Retrying](docs/RetryingTarantoolClient.md)  \n  Retrying transient cluster failures.\n* [TarantoolTuple usage](docs/TarantoolTupleUsage.md)  \n  Creating and operating with TarantoolTuple entity.\n* [Mappers and converters](docs/MappersAndConverters.md)  \n  Converting data from MessagePack types to basic Java types and back.\n* [Token authorization](docs/TokenAuthorization.md)  \n  An example of TDG authorization by token\n* [Custom sharding function](docs/CustomShardingFunction.md)  \n  Determining bucket id on java side to send requests directly on storage.\n* [Thread control](docs/ThreadControl.md)  \n  Specifying custom numbers of netty work threads.\n* [Space not found](docs/SpaceNotFound.md)  \n  The problem of getting metadata.\n* [SSL and mTLS usage examples (enterprise edition only)](docs/SslAndMtls.md)  \n  Connect to Tarantool instances over an SSL or mTLS channel.\n\n## Documentation\n\nThe Java Docs are available at [Github pages](https://tarantool.github.io/cartridge-java/).\n\nIf you have any questions about working with Tarantool, check out the\nsite [tarantool.io](https://tarantool.io/).\n\nFeel free to ask questions about Tarantool and usage of this driver on\nStack Overflow with tag [tarantool](https://stackoverflow.com/questions/tagged/tarantool)\nor join our community support chats in Telegram: [English](https://t.me/tarantool)\nand [Russian](https://t.me/tarantool).\n\n## [Changelog](CHANGELOG.md)\n\n## [License](LICENSE)\n\n## Requirements\n\nJava 1.8 or higher is required for building and using this driver.\n\n## Building\n\n1. Docker accessible to the current user is required for running integration tests.\n2. Set up the right user for running Tarantool with in the container:\n```bash\nexport TARANTOOL_SERVER_USER=\u003ccurrent user\u003e\nexport TARANTOOL_SERVER_GROUP=\u003ccurrent group\u003e\n```\nSubstitute the user and group in these commands with the user and group under which the tests will run.\n3. Use `./mvnw verify` to run unit tests and `./mvnw test -Pintegration` to run integration tests.\n4. Use `./mvnw install` for installing the artifact locally.\n\n## Contributing\n\nContributions to this project are always welcome and highly encouraged.\n[See conventions for tests](docs/test-convention.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarantool%2Fcartridge-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarantool%2Fcartridge-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarantool%2Fcartridge-java/lists"}