{"id":13555632,"url":"https://github.com/jo/roy-replicator","last_synced_at":"2025-04-11T18:53:32.274Z","repository":{"id":11544568,"uuid":"14029815","full_name":"jo/roy-replicator","owner":"jo","description":"Node implementation of CouchDB replicator. For educational purposes.","archived":false,"fork":false,"pushed_at":"2014-01-31T21:42:32.000Z","size":404,"stargazers_count":20,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T14:50:56.079Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/jo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MIT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-31T22:22:31.000Z","updated_at":"2020-08-30T01:20:57.000Z","dependencies_parsed_at":"2022-08-31T06:40:55.646Z","dependency_job_id":null,"html_url":"https://github.com/jo/roy-replicator","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Froy-replicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Froy-replicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Froy-replicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Froy-replicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jo","download_url":"https://codeload.github.com/jo/roy-replicator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248464521,"owners_count":21108238,"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":"2024-08-01T12:03:19.271Z","updated_at":"2025-04-11T18:53:32.244Z","avatar_url":"https://github.com/jo.png","language":"JavaScript","readme":"roy-replicator [![Build Status](https://secure.travis-ci.org/jo/roy-replicator.png?branch=master)](http://travis-ci.org/jo/roy-replicator)\n==============\nNode implementation of the CouchDB replication protocol.\n\nUsage\n-----\n```js\nvar adapter = require('roy-request');\nvar roy = require('roy-replicator');\n\nroy.replicate({\n  source: adapter('http://localhost:5984/my-source'),\n  target: adapter('http://localhost:5984/my-target')\n}, function(err, resp) {\n  // Oh Pris!\n});\n```\n\nThis should also be possible (but I haven't tested yet):\n```js\nvar adapter = require('pouchdb');\n```\n\nGoals\n-----\n\u003cimg src=https://raw.github.com/jo/roy-replicator/d3d01e8a6b2e62410e3285fa4e9bdf3425c79bb8/test/fixtures/roy.jpg\u003e\n\n* Gain deeper understanding of CouchDB replication\n* Good readability and testability\n* CouchDB replicator compatibility\n* Be nearly as fast as CouchDB\n* Small browserified footprint\n* PouchDB compatibility (replace `roy-request` with `pouchdb`)\n\nResources\n---------\n* [CouchDB Replication Protocol by Alexander Shorin](http://kxepal.iriscouch.com/docs/dev/replication/protocol.html)\n* [Jens Alfkes description of the replication algorithm](https://github.com/couchbaselabs/TouchDB-iOS/wiki/Replication-Algorithm)\n* [CouchDB Replication Protocol on Data Protocols](http://www.dataprotocols.org/en/latest/couchdb_replication.html)\n* [RCouchs Replication Algorithm in pseudo code](https://github.com/refuge/rcouch/wiki/Replication-Algorithm)\n\nDevelopment\n-----------\n* Lint the code with `npm run jshint`\n* Run the tests with `npm test`\n* Browserify with `npm run build`\n* List TODOS with `npm run todos`\n* Run performance tests with `npm run perf`\n\nLicense\n-------\nCopyright (c) 2013 Johannes J. Schmidt, TF\n\nLicensed under the MIT license.\n","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjo%2Froy-replicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjo%2Froy-replicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjo%2Froy-replicator/lists"}