{"id":19979550,"url":"https://github.com/armen/dp","last_synced_at":"2025-07-04T09:32:22.298Z","repository":{"id":57554543,"uuid":"113717883","full_name":"armen/dp","owner":"armen","description":"Distributed Programming Abstractions","archived":false,"fork":false,"pushed_at":"2018-12-05T19:35:12.000Z","size":87,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-04T04:33:27.412Z","etag":null,"topics":["abstraction","consensus-algorithm","distributed","go","group-communication","reliable"],"latest_commit_sha":null,"homepage":"","language":"Go","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/armen.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}},"created_at":"2017-12-10T02:52:25.000Z","updated_at":"2025-01-07T03:14:34.000Z","dependencies_parsed_at":"2022-09-26T18:51:22.150Z","dependency_job_id":null,"html_url":"https://github.com/armen/dp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/armen/dp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armen%2Fdp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armen%2Fdp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armen%2Fdp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armen%2Fdp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/armen","download_url":"https://codeload.github.com/armen/dp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armen%2Fdp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262044446,"owners_count":23249749,"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":["abstraction","consensus-algorithm","distributed","go","group-communication","reliable"],"created_at":"2024-11-13T03:38:09.700Z","updated_at":"2025-06-26T10:04:24.277Z","avatar_url":"https://github.com/armen.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dp [![GoDoc](https://godoc.org/github.com/armen/dp?status.png)](https://godoc.org/github.com/armen/dp) [![Build Status](https://travis-ci.org/armen/dp.svg?branch=master)](https://travis-ci.org/armen/dp) [![codecov](https://codecov.io/gh/armen/dp/branch/master/graph/badge.svg)](https://codecov.io/gh/armen/dp)\n\nA pure Go implementation of [*Introduction to Reliable and Secure Distributed Programming*][dp] abstractions.\n\n## Example Algorithms\n\n- Job handler ([interface and properties](https://godoc.org/github.com/armen/dp/job#Handler))\n\t- Synchronous job handler ([implementation](https://raw.githubusercontent.com/armen/dp/master/job/handler/sync/sync.go), [algorithm](https://raw.githubusercontent.com/armen/dp/master/job/handler/sync/sync.txt))\n\t- Asynchronous job handler ([implementation](https://raw.githubusercontent.com/armen/dp/master/job/handler/async/async.go), [algorithm](https://raw.githubusercontent.com/armen/dp/master/job/handler/async/async.txt))\n- Job transformation and processing abstraction ([interface and properties](https://godoc.org/github.com/armen/dp/job#TransformationHandler))\n\t- Job-Transformation by buffering ([implementation](https://raw.githubusercontent.com/armen/dp/master/job/transformation/transformation.go), [algorithm](https://raw.githubusercontent.com/armen/dp/master/job/transformation/transformation.txt))\n\n## List of Algorithms\n\n### Link\n\n- Perfect point-to-point link ([interface and properties](https://godoc.org/github.com/armen/dp/link#Perfect))\n\t- TCP based perfect peer-to-peer link ([implementation](https://raw.githubusercontent.com/armen/dp/master/link/perfect/p2p/p2p.go))\n\n### Failure Detector\n\n- Perfect failure detector ([interface and properties](https://godoc.org/github.com/armen/dp/fd#Perfect))\n- Eventually perfect failure detector ([interface and properties](https://godoc.org/github.com/armen/dp/fd#EventuallyPerfect))\n\n### Broadcast\n\n- Best-Effort broadcast ([interface and properties](https://godoc.org/github.com/armen/dp/broadcast#BestEffort))\n\t- Basic Broadcast ([implementation](https://raw.githubusercontent.com/armen/dp/master/broadcast/besteffort/beb/beb.go), [algorithm](https://raw.githubusercontent.com/armen/dp/master/broadcast/besteffort/beb/beb.txt))\n\n### Consensus\n\n- Regular Consensus ([interface and properties](https://godoc.org/github.com/armen/dp/consensus#Regular))\n- Uniform Consensus ([interface and properties](https://godoc.org/github.com/armen/dp/consensus#Uniform))\n\t- Single Decree Paxos Proposer ([implementation](https://raw.githubusercontent.com/armen/dp/master/consensus/paxos/basic/proposer.go), [algorithm](https://raw.githubusercontent.com/armen/dp/master/consensus/paxos/basic/proposer.txt))\n\t- Single Decree Paxos Acceptor ([implementation](https://raw.githubusercontent.com/armen/dp/master/consensus/paxos/basic/acceptor.go), [algorithm](https://raw.githubusercontent.com/armen/dp/master/consensus/paxos/basic/acceptor.txt))\n\n## Notes\n\nWARNING: The API is not stable yet and can change without notice.\n\n\n[dp]: http://distributedprogramming.net\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farmen%2Fdp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farmen%2Fdp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farmen%2Fdp/lists"}