{"id":13569416,"url":"https://github.com/apache/ratis","last_synced_at":"2025-05-14T07:08:08.622Z","repository":{"id":37078227,"uuid":"80501529","full_name":"apache/ratis","owner":"apache","description":"Open source Java implementation for Raft consensus protocol.","archived":false,"fork":false,"pushed_at":"2025-05-07T15:17:12.000Z","size":11815,"stargazers_count":1370,"open_issues_count":23,"forks_count":428,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-05-07T16:31:05.650Z","etag":null,"topics":["consensus","consensus-protocol","java","raft"],"latest_commit_sha":null,"homepage":"https://ratis.apache.org/","language":"Java","has_issues":false,"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/apache.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-01-31T08:00:07.000Z","updated_at":"2025-05-07T15:17:17.000Z","dependencies_parsed_at":"2023-12-29T08:24:18.284Z","dependency_job_id":"b6e6fdec-dc07-4375-969b-3d52e2fbfe13","html_url":"https://github.com/apache/ratis","commit_stats":null,"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fratis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fratis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fratis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fratis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/ratis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254043095,"owners_count":22004910,"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":["consensus","consensus-protocol","java","raft"],"created_at":"2024-08-01T14:00:39.713Z","updated_at":"2025-05-14T07:08:08.602Z","avatar_url":"https://github.com/apache.png","language":"Java","readme":"\u003c!--\n  Licensed under the Apache License, Version 2.0 (the \"License\");\n  you may not use this file except in compliance with the License.\n  You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing, software\n  distributed under the License is distributed on an \"AS IS\" BASIS,\n  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  See the License for the specific language governing permissions and\n  limitations under the License. See accompanying LICENSE file.\n--\u003e\n\n# Apache Ratis\n*[Apache Ratis]* is a Java library that implements the Raft protocol [1],\nwhere an extended version of the Raft paper is available at \u003chttps://raft.github.io/raft.pdf\u003e.\nThe paper introduces Raft and states its motivations in following words:\n\n\u003e Raft is a consensus algorithm for managing a replicated log.\n\u003e It produces a result equivalent to (multi-)Paxos, and it is as efficient as Paxos,\n\u003e but its structure is different from Paxos; this makes Raft more understandable than Paxos\n\u003e and also provides a better foundation for building practical systems.\n\nRatis aims to make Raft available as a java library that can be used by any system that needs to use a replicated log.\nIt provides pluggability for state machine implementations to manage replicated states.\nIt also provides pluggability for Raft log, rpc implementations and metric implementations to make it easy for integration with other projects.\nAnother important goal is to support high throughput data ingest so that it can be used for more general data replication use cases.\n\n* To build the artifacts, see [BUILDING.md](BUILDING.md).\n* To run the examples, see [ratis-examples/README.md](ratis-examples/README.md).\n\n## Reference\n1. Diego Ongaro and John Ousterhout,\n_[In Search of an Understandable Consensus Algorithm][Ongaro2014]_,\n2014 USENIX Annual Technical Conference (USENIX ATC 14) (Philadelphia, PA), USENIX Association, 2014, pp. 305-319.\n\n[Ongaro2014]: https://www.usenix.org/conference/atc14/technical-sessions/presentation/ongaro\n\n[Apache Ratis]: https://ratis.apache.org/\n","funding_links":[],"categories":["Java","分布式开发"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fratis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fratis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fratis/lists"}