{"id":26433891,"url":"https://github.com/filinvadim/easy-raft","last_synced_at":"2025-08-30T22:11:53.036Z","repository":{"id":279851578,"uuid":"940204910","full_name":"filinvadim/easy-raft","owner":"filinvadim","description":"A simple wrapper for Hashicorp Raft.","archived":false,"fork":false,"pushed_at":"2025-07-02T13:01:14.000Z","size":27,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-02T14:22:34.251Z","etag":null,"topics":["go","libp2p","libp2p-raft","raft","raft-consensus-algorithm","raft-go"],"latest_commit_sha":null,"homepage":"https://raft.github.io/","language":"Go","has_issues":true,"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/filinvadim.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":"2025-02-27T19:31:36.000Z","updated_at":"2025-07-02T13:01:18.000Z","dependencies_parsed_at":"2025-02-28T04:14:48.886Z","dependency_job_id":"0fa924b7-4220-472a-8ff6-51edfa3f36a2","html_url":"https://github.com/filinvadim/easy-raft","commit_stats":null,"previous_names":["filinvadim/easy-raft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/filinvadim/easy-raft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filinvadim%2Feasy-raft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filinvadim%2Feasy-raft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filinvadim%2Feasy-raft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filinvadim%2Feasy-raft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/filinvadim","download_url":"https://codeload.github.com/filinvadim/easy-raft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filinvadim%2Feasy-raft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272913575,"owners_count":25014297,"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","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["go","libp2p","libp2p-raft","raft","raft-consensus-algorithm","raft-go"],"created_at":"2025-03-18T07:19:31.291Z","updated_at":"2025-08-30T22:11:52.996Z","avatar_url":"https://github.com/filinvadim.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# easy-raft\n\nA simple wrapper for HashiCorp's Raft implementation in Go.\n\n## Overview\n\n`easy-raft` provides a straightforward interface to integrate Raft consensus into your Go applications, leveraging HashiCorp's robust Raft library.\n\n## Ratio\n\nIt is not easy to use HashiCorp's Raft library without knowing many details related to Raft consensus\nalgorithm spec. This wrapper is taking away any such overhead providing simple Raft node setup\nand access to it interface.\n\n## Features\n\n- Simplified setup and management of Raft nodes\n- Easy integration into existing Go projects\n- Example usage provided in the `example` directory\n\n## Getting Started\n\n### Prerequisites\n\n- Go 1.21 or later\n\n### Installation\n\n```sh\ngo get github.com/filinvadim/easy-raft\n```\n\n### Usage\n\n```go\npackage main\n\nimport (\n\t\"github.com/filinvadim/easy-raft\"\n)\n\nfunc main() {\n    // Initialize and start your Raft node\n    node, err := easyraft.NewEasyRaft(\n        ctx,\n        \"localhost:6969\",\n        logger,\n        logStore,\n        stableStore,\n        snapshotStore,\n        transport,\n        ) // Set your own configuration parameters \n    \n    // Handle error\n    \n    defer node.Shutdown()\n    \n    raft := node.Raft()\n    raft.Apply([]byte(\"some cmd\"), time.Second*5) \t// Your application logic here\n}\n\n```\n\nFor a complete example, refer to the example directory in the repository.\n\n### Contributing\n\nContributions are welcome! Please fork the repository and submit a pull request.\n\n### License\n\nThis project is licensed under the Apache License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilinvadim%2Feasy-raft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffilinvadim%2Feasy-raft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilinvadim%2Feasy-raft/lists"}