{"id":16695832,"url":"https://github.com/gesellix/docker-client-shootout","last_synced_at":"2026-04-19T02:07:06.108Z","repository":{"id":141917155,"uuid":"108785663","full_name":"gesellix/docker-client-shootout","owner":"gesellix","description":"Showcase of several Docker clients for the JVM","archived":false,"fork":false,"pushed_at":"2017-11-11T22:23:25.000Z","size":24,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-20T20:40:43.757Z","etag":null,"topics":["client","docker","engine","java","jvm"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gesellix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2017-10-30T01:09:38.000Z","updated_at":"2018-01-07T04:51:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"49e6af1e-2bc6-4684-b658-79d7c0bb556e","html_url":"https://github.com/gesellix/docker-client-shootout","commit_stats":{"total_commits":13,"total_committers":1,"mean_commits":13.0,"dds":0.0,"last_synced_commit":"bc68effb18cd57c24cb59b4cc52665ee84db4c37"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fdocker-client-shootout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fdocker-client-shootout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fdocker-client-shootout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fdocker-client-shootout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gesellix","download_url":"https://codeload.github.com/gesellix/docker-client-shootout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243505960,"owners_count":20301619,"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":["client","docker","engine","java","jvm"],"created_at":"2024-10-12T17:08:39.965Z","updated_at":"2025-10-07T09:04:43.249Z","avatar_url":"https://github.com/gesellix.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Compare Docker clients for the Java/JVM\n\nThe article [Docker for Java Developers: Docker over HTTP/REST](https://www.javacodegeeks.com/2017/10/docker-java-developers-docker-http-rest.html)\nconsiders [Spotify's docker-client library](https://github.com/spotify/docker-client) as de-facto choice for JVM based applications.\nReading the broad overview of examples I wondered how they would look like when using other Java libraries for the Docker Engine API.\nI personally considered another library ([github.com/docker-java](https://github.com/docker-java/docker-java)) to be\nthe de-facto choice, due to its popularity. Since I also maintain yet another library based on Groovy ([github.com/gesellix/docker-client](https://github.com/gesellix/docker-client)),\nI couldn't resist but had to dig deeper and try to compare those three libraries.\n\nThis repo now contains three Maven projects, each using another Docker client library. The examples are taken\nfrom the initially mentioned article and have been adopted to the respective lib:  \n\n- [docker-java/docker-java](https://github.com/docker-java/docker-java)\n- [gesellix/docker-client](https://github.com/gesellix/docker-client)\n- [spotify/docker-client](https://github.com/spotify/docker-client)\n\n## Scope\n\nThough I consider Gradle to be superior, discussing the build tool is out of scope. I also refrained\nfrom using Groovy. The focus should stay on the actual Docker client libraries, with their feature set,\nperformance, maintainability, compatibility, etc.\n\nThat said, there's not much value in simply comparing a list of features: some libraries might fill another niche, so\nwe cannot assume that this repository could define some kind of requirements for a Docker client. Please\nconsider this repository as a simple playground. Comparing the libraries is more or less a by-product of my curiosity.\n\n## Bias everywhere\n\nI'm aware that \"my own lib\" won't look so beautiful when being used in plain Java, but I guess I'm biased enough\nto ignore that. There's another bias inherently given due to the given set of examples taken from the article:\nI didn't extend the examples with other features, yet. That's why you're going to miss demos using the Swarm Mode,\nDocker Stack, TLS configuration, etc. These should be added in the future, so please feel free to submit pull requests. \n\n## Contributing\n\nI'm interested in adding more examples to show the maturity of each library. The examples should be kept up-to-date\nwith the Docker Engine API. When you'd like to see a specific aspect to be compared (maybe you found another library?),\nplease file an issue or go ahead and submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgesellix%2Fdocker-client-shootout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgesellix%2Fdocker-client-shootout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgesellix%2Fdocker-client-shootout/lists"}