{"id":22958412,"url":"https://github.com/rads/rsdp","last_synced_at":"2025-06-10T13:03:47.626Z","repository":{"id":137061318,"uuid":"91529395","full_name":"rads/rsdp","owner":"rads","description":"🐢 [Work in Progress] Implementations of algorithms from Introduction to Reliable and Secure Distributed Programming","archived":false,"fork":false,"pushed_at":"2017-05-17T03:47:37.000Z","size":51,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T16:21:34.550Z","etag":null,"topics":["async","clojure","distributed-systems","fault-tolerance","networking","rsdp"],"latest_commit_sha":null,"homepage":"","language":"Clojure","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/rads.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-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}},"created_at":"2017-05-17T03:25:29.000Z","updated_at":"2019-11-14T03:37:39.000Z","dependencies_parsed_at":"2023-03-21T11:03:46.312Z","dependency_job_id":null,"html_url":"https://github.com/rads/rsdp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rads%2Frsdp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rads%2Frsdp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rads%2Frsdp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rads%2Frsdp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rads","download_url":"https://codeload.github.com/rads/rsdp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rads%2Frsdp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259080941,"owners_count":22802395,"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":["async","clojure","distributed-systems","fault-tolerance","networking","rsdp"],"created_at":"2024-12-14T17:39:55.373Z","updated_at":"2025-06-10T13:03:47.613Z","avatar_url":"https://github.com/rads.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rsdp\n\n\u003cimg width=\"165\" src=\"docs/book.jpg\" align=\"right\"\u003e\n\n**This code is alpha status. The current implementations are not necessarily functional or correct.**\n\nImplementations of modules from [*Introduction to Reliable and Secure Distributed Programming*][rsdp].\n\n[rsdp]: http://distributedprogramming.net\n\n## List of Algorithms\n\n### Chapter 1: Introduction\n\n- [1.1 Synchronous Job Handler](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/synchronous_job_handler.clj)\n- [1.2 Asynchronous Job Handler](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/asynchronous_job_handler.cljc)\n- [1.3 Job-Transformation by Buffering](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/job_transformation_by_buffering.clj)\n\n### Chapter 2: Basic Abstractions\n\n- [2.1 Retransmit Forever](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/retransmit_forever.cljc)\n- [2.2 Eliminate Duplicates](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/eliminate_duplicates.cljc)\n- [2.3 Log Delivered](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/log_delivered.clj)\n- [2.4 Authenticate and Filter](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/authenticate_and_filter.clj)\n- [2.5 Exclude on Timeout](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/exclude_on_timeout.cljc)\n- [2.6 Monarchical Leader Election](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/monarchical_leader_election.cljc)\n- [2.7 Increasing Timeout](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/increasing_timeout.clj)\n- [2.8 Monarchical Eventual Leader Detection](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/monarchical_eventual_leader_detection.clj)\n- [2.9 Elect Lower Epoch](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/elect_lower_epoch.clj)\n- [2.10 Rotating Byzantine Leader Detection](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/rotating_byzantine_leader_detection.clj)\n- [2.11 Sequence Number](https://github.com/rads/rsdp/blob/master/src/rads/rsdp/modules/sequence_number.clj)\n\n### Chapter 3: Reliable Broadcast\n\n- 3.1 Basic Broadcast\n- 3.2 Lazy Reliable Broadcast\n- 3.3 Eager Reliable Broadcast\n- 3.4 All-Ack Uniform Reliable Broadcast\n- 3.5 Majority-Ack Uniform Reliable Broadcast\n- 3.6 Basic Stubborn Broadcast\n- 3.7 Logged Basic Broadcast\n- 3.8 Logged Majority-Ack Uniform Reliable Broadcast\n- 3.9 Eager Probabilistic Broadcast\n- 3.10 Lazy Probabilistic Broadcast (part 1, data dissemination)\n- 3.11 Lazy Probabilistic Broadcast (part2, recovery)\n- 3.12 Broadcast with Sequence Number\n- 3.13 No-Waiting Causal Broadcast\n- 3.14 Garbage-Collection of Causal Past (extends Algorithm 3.13)\n- 3.15 Waiting Causal Broadcast\n- 3.16 Authenticated Echo Broadcast\n- 3.17 Signed Echo Broadcast\n- 3.18 Authenticated Double-Echo Broadcast\n- 3.19 Byzantine Consistent Channel\n- 3.20 Byzantine Reliable Channel\n- 3.21 Simple Optimization of Lazy Reliable Broadcast\n- 3.22 Ideal Uniform Reliable Broadcast\n- 3.23 Logged Eager Reliable Broadcast\n- 3.24 No-Waiting Causal Broadcast using FIFO Broadcast\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frads%2Frsdp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frads%2Frsdp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frads%2Frsdp/lists"}