{"id":24499682,"url":"https://github.com/codewithkyle/crdt-hlc-prototype","last_synced_at":"2026-01-02T14:09:22.385Z","repository":{"id":201070405,"uuid":"706889964","full_name":"codewithkyle/crdt-hlc-prototype","owner":"codewithkyle","description":"[Experiment] Exploring Conflict-free Replicated Data Types (CRDT) with Hybrid Logical Clocks (HLC)","archived":false,"fork":false,"pushed_at":"2023-10-19T22:35:51.000Z","size":166,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T14:52:21.097Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/codewithkyle.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2023-10-18T20:18:38.000Z","updated_at":"2023-10-18T20:19:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"0eeda5a8-2695-428e-8ccb-093ba066373e","html_url":"https://github.com/codewithkyle/crdt-hlc-prototype","commit_stats":null,"previous_names":["codewithkyle/crdt-hlc-prototype"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewithkyle%2Fcrdt-hlc-prototype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewithkyle%2Fcrdt-hlc-prototype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewithkyle%2Fcrdt-hlc-prototype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewithkyle%2Fcrdt-hlc-prototype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codewithkyle","download_url":"https://codeload.github.com/codewithkyle/crdt-hlc-prototype/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243695597,"owners_count":20332629,"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":"2025-01-21T22:15:17.642Z","updated_at":"2026-01-02T14:09:22.347Z","avatar_url":"https://github.com/codewithkyle.png","language":"HTML","readme":"# Exploring Conflict-free Replicated Data Types (CRDT) with Hybrid Logical Clocks (HLC)\n\n### Instructions\n\n1. Clone this project.\n\n2. Run `npm ci`\n\n3. Start the server:\n\n```bash\nnode ./server.js\n```\n\n4. Open `index.html` in a web browser.\n\n### Demo\n\n![CRDT based input updates](./demo-1.gif)\n\n![Offline support + conflict resolution with HLCs](./demo-2.gif)\n\n### References\n\n- [An Interactive Intro to CRDTs](https://jakelazaroff.com/words/an-interactive-intro-to-crdts/)\n- [Building a Collaborative Pixel Art Editor with CRDTs](https://jakelazaroff.com/words/building-a-collaborative-pixel-art-editor-with-crdts/)\n- [A CRDT Primer Part II: Convergent CRDTs](https://blog.jtfmumm.com//2015/11/24/crdt-primer-2-convergent-crdts/)\n- [Eventual Consistency and Conflict Resolution - Part 2](https://www.mydistributed.systems/2022/02/eventual-consistency-part-2.html)\n- [Making CRDTs 98% More Efficient](https://jakelazaroff.com/words/making-crdts-98-percent-more-efficient)\n- [CRDTs: The Hard Parts (video)](https://www.youtube.com/watch?v=x7drE24geUw\u0026t=3587s)\n- [Distributed Systems 4.1: Logical time (video)](https://www.youtube.com/watch?v=x-D8iFU1d-o)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodewithkyle%2Fcrdt-hlc-prototype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodewithkyle%2Fcrdt-hlc-prototype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodewithkyle%2Fcrdt-hlc-prototype/lists"}