{"id":17645796,"url":"https://github.com/retrodaredevil/couchdb-java","last_synced_at":"2025-08-08T10:37:14.253Z","repository":{"id":111427073,"uuid":"385080898","full_name":"retrodaredevil/couchdb-java","owner":"retrodaredevil","description":"A CouchDB Java library that is (mostly) uncoupled from any particular JSON library","archived":false,"fork":false,"pushed_at":"2024-12-12T02:49:19.000Z","size":361,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T07:15:49.734Z","etag":null,"topics":["cloudant","couchdb","java","java-8","java-library"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/retrodaredevil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"retrodaredevil"}},"created_at":"2021-07-12T00:25:19.000Z","updated_at":"2024-12-12T02:42:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"72aeea3c-b98e-4f00-84b5-9f120980d325","html_url":"https://github.com/retrodaredevil/couchdb-java","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/retrodaredevil/couchdb-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/retrodaredevil%2Fcouchdb-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/retrodaredevil%2Fcouchdb-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/retrodaredevil%2Fcouchdb-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/retrodaredevil%2Fcouchdb-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/retrodaredevil","download_url":"https://codeload.github.com/retrodaredevil/couchdb-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/retrodaredevil%2Fcouchdb-java/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269409399,"owners_count":24412140,"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","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cloudant","couchdb","java","java-8","java-library"],"created_at":"2024-10-23T10:59:35.222Z","updated_at":"2025-08-08T10:37:14.195Z","avatar_url":"https://github.com/retrodaredevil.png","language":"Java","funding_links":["https://github.com/sponsors/retrodaredevil"],"categories":[],"sub_categories":[],"readme":"### CouchDB Java\nA CouchDB Java library that is (mostly) uncoupled from any particular JSON library.\n\nThere are many outdated CouchDB libraries, and some more up to date CouchDB libraries for Java. Some of these\nlibraries are tightly coupled to JSON libraries such as GSON or Jackson. This library uses Jackson internally,\nbut you can interact with this library using strings representing JSON values. The only library this library is tightly\ncoupled to is [Okio](https://github.com/square/okio), which is used in place of InputStreams in some places\n\nThis library encourages the use of immutable objects as much as possible and doesn't force you to put `_id` and `_rev`\non your objects like many other libraries do.\n\nThis library works great with Kotlin. Much of the code is annotated with annotations to denote nullability.\n\n### Features\n* Decoupled from JSON library\n* Encourages use of immutable objects\n* _id and _rev parameters are not required on your POJOs  \n* Password auth, cookie auth, and no auth support\n* Uses OkHttp, but has possibility for many implementations using different HTTP libraries\n* Checked exceptions (all inherit from CouchDbException)\n* Integration tested! (This should mean fewer bugs in this library)\n\n### Couchbase, Cloudant, PouchDB support\nThe primary goal of this project is to support CouchDB.\nMany features of this library likely work fine with these others databases,\nbut it is not guaranteed to work.\n\n### Using library:\n```groovy\nallprojects {\n  repositories {\n    maven { url 'https://www.jitpack.io' }\n  }\n}\ndependencies {\n  implementation \"com.github.retrodaredevil:couchdb-java:$couchdbJavaVersion\"\n}\n```\n\n\n### Running Tests:\nRunning test and building:\n```shell\n./gradlew build\n```\nRunning integration tests:\n```shell\ndocker compose --file testing/docker-compose.yml pull\n./gradlew integration\n```\n\n### Other CouchDB libraries for Java\n* [Cloudant Java SDK](https://github.com/IBM/cloudant-java-sdk)\n  * Up to date\n  * Designed to fully support Cloudant and CouchDB\n  * Uses GSON internally, but GSON doesn't seem to be exposed to the public API.\n  * Tightly coupled to custom Document class\n* [LightCouch](https://github.com/lightcouch/LightCouch)\n  * Uses GSON and is tightly coupled to GSON\n  * Uses inheritance rather than composition to support alternative HTTP libraries on Android\n* [Ektorp](https://github.com/helun/Ektorp)\n  * Uses Jackson and is tightly coupled to Jackson\n    * Allows a single ObjectMapper to be configured for all serialization and deserialization\n  * Updating objects without `_id` and `_rev` on them is awkward\n* [couchdb4j](https://github.com/mbreese/couchdb4j)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fretrodaredevil%2Fcouchdb-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fretrodaredevil%2Fcouchdb-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fretrodaredevil%2Fcouchdb-java/lists"}