{"id":15056600,"url":"https://github.com/twcable/grabbit","last_synced_at":"2025-10-24T18:17:31.007Z","repository":{"id":27904209,"uuid":"31395930","full_name":"TWCable/grabbit","owner":"TWCable","description":"Grabbit - Fast Content Sync tool for AEM/CQ","archived":false,"fork":false,"pushed_at":"2020-05-19T15:40:32.000Z","size":4526,"stargazers_count":125,"open_issues_count":89,"forks_count":63,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-03-24T05:44:08.234Z","etag":null,"topics":["aem","aem-tools","groovy","spring-batch"],"latest_commit_sha":null,"homepage":"","language":"Groovy","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/TWCable.png","metadata":{"files":{"readme":"README.adoc","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}},"created_at":"2015-02-27T00:24:35.000Z","updated_at":"2023-08-22T09:31:01.000Z","dependencies_parsed_at":"2022-07-12T20:30:31.265Z","dependency_job_id":null,"html_url":"https://github.com/TWCable/grabbit","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TWCable%2Fgrabbit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TWCable%2Fgrabbit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TWCable%2Fgrabbit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TWCable%2Fgrabbit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TWCable","download_url":"https://codeload.github.com/TWCable/grabbit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248157785,"owners_count":21057065,"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":["aem","aem-tools","groovy","spring-batch"],"created_at":"2024-09-24T21:53:56.844Z","updated_at":"2025-10-24T18:17:25.989Z","avatar_url":"https://github.com/TWCable.png","language":"Groovy","readme":"= Grabbit\n:docsDir: docs\n\nimage:https://travis-ci.org/TWCable/grabbit.svg?branch=master[title = \"Build Status\", link = \"https://travis-ci.org/TWCable/grabbit\"] image:https://badge.waffle.io/TWCable/grabbit.png?label=ready\u0026title=Ready[title = \"Stories in Ready\", link = \"https://waffle.io/TWCable/grabbit\"]\n\nimage:https://api.bintray.com/packages/twcable/aem/Grabbit/images/download.svg[title = \"Download\", link = \"https://bintray.com/twcable/aem/Grabbit/_latestVersion\"]\n\n\n== Project Purpose\n\nThe purpose of Grabbit is to provide a fast and reliable way of copying content from one Sling (specifically Adobe CQ/AEM) instance to another.\n\nExisting solutions have been tried and found insufficient for very large data sets (GB-TB), especially over a network. CQ's .zip packages are extremely space inefficient, causing a lot of extra I/O. http://jackrabbit.apache.org/filevault/usage.html[`vlt rcp`] and Mark Adamcin's http://adamcin.net/net.adamcin.recap/[`recap`] use essentially the same mechanism: WebDAV using XML, doing an HTTP handshake for every node and many sets of properties, which means that any latency whatsoever on the network hurts performance enormously.\n\nGrabbit creates a stream of data using https://developers.google.com/protocol-buffers/[Google's Protocol Buffers] aka \"ProtoBuf\". Protocol Buffers are an extremely efficient (in terms of CPU, memory and wire size) binary protocol that includes compression.\n\nMoreover, by doing a continuous stream, we avoid the latency issues. Depending on the size and nature of the data, as well as network latency, we have so far seen speed improvements ranging from 2 to 10 times that of Recap/vlt.\n\nNOTE: \"Grabbit\" obviously refers to this \"grabbing\" content from one CQ/AEM instance and copying it to another. However it also refers to \"Jackrabbit,\" the reference JCR implementation that the content is being copied to and from.\n\nimage:https://api.bintray.com/packages/twcable/aem/Grabbit/images/download.svg[title = \"Download\", link = \"https://bintray.com/twcable/aem/Grabbit/_latestVersion\"]\n\n\n== Table of Contents\n\n* General Information\n\n** link:{docsDir}/RELEASE_NOTES.md[Releases]\n** link:{docsDir}/AEMSupport.adoc[Installation \u0026 Version Support]\n\n* Using Grabbit\n\n** link:{docsDir}/GeneralLayout.adoc[General Layout]\n** link:{docsDir}/Running.adoc[Running]\n** link:{docsDir}/Monitoring.adoc[Monitoring / Validating the Content Sync]\n** link:{docsDir}/Cleaning.adoc[Cleaning Grabbit Job Repository]\n\n* Grabbit Development\n\n** link:{docsDir}/GettingStarted.adoc[Getting Started]\n** link:{docsDir}/Building.adoc[Building from Source]\n** link:{docsDir}/RELEASING.adoc[Releasing A New Version]\n\n* link:{docsDir}/LibraryAttribution.adoc[Library Attribution]\n\n* link:{docsDir}/LicenseInfo.adoc[License]\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwcable%2Fgrabbit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwcable%2Fgrabbit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwcable%2Fgrabbit/lists"}