{"id":13582552,"url":"https://github.com/weaveworks/mesh","last_synced_at":"2025-05-15T08:05:36.945Z","repository":{"id":37733190,"uuid":"49562556","full_name":"weaveworks/mesh","owner":"weaveworks","description":"A tool for building distributed applications.","archived":false,"fork":false,"pushed_at":"2023-12-18T21:43:57.000Z","size":326,"stargazers_count":889,"open_issues_count":30,"forks_count":109,"subscribers_count":74,"default_branch":"master","last_synced_at":"2025-04-14T13:07:38.441Z","etag":null,"topics":["crdt","eventually-consistent","gossip","gossip-protocol"],"latest_commit_sha":null,"homepage":null,"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/weaveworks.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}},"created_at":"2016-01-13T09:10:24.000Z","updated_at":"2025-04-08T16:58:06.000Z","dependencies_parsed_at":"2024-01-14T04:40:16.706Z","dependency_job_id":"73a8b04d-da87-4a37-a2ac-54e610605036","html_url":"https://github.com/weaveworks/mesh","commit_stats":{"total_commits":137,"total_committers":19,"mean_commits":"7.2105263157894735","dds":0.5182481751824817,"last_synced_commit":"58dbcc3e8e63eed7dd77f3a6286855ae8c8876c1"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fmesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fmesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fmesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fmesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weaveworks","download_url":"https://codeload.github.com/weaveworks/mesh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254301431,"owners_count":22047904,"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":["crdt","eventually-consistent","gossip","gossip-protocol"],"created_at":"2024-08-01T15:02:49.819Z","updated_at":"2025-05-15T08:05:36.917Z","avatar_url":"https://github.com/weaveworks.png","language":"Go","funding_links":[],"categories":["Service mesh","Go"],"sub_categories":["[Jenkins](#jenkins)"],"readme":"# mesh [![GoDoc](https://godoc.org/github.com/weaveworks/mesh?status.svg)](https://godoc.org/github.com/weaveworks/mesh) [![Circle CI](https://circleci.com/gh/weaveworks/mesh.svg?style=svg)](https://circleci.com/gh/weaveworks/mesh)\n\nMesh is a tool for building distributed applications.\n\nMesh implements a [gossip protocol](https://en.wikipedia.org/wiki/Gossip_protocol)\nthat provide membership, unicast, and broadcast functionality\nwith [eventually-consistent semantics](https://en.wikipedia.org/wiki/Eventual_consistency).\nIn CAP terms, it is AP: highly-available and partition-tolerant.\n\nMesh works in a wide variety of network setups, including thru NAT and firewalls, and across clouds and datacenters.\nIt works in situations where there is only partial connectivity,\n i.e. data is transparently routed across multiple hops when there is no direct connection between peers.\nIt copes with partitions and partial network failure.\nIt can be easily bootstrapped, typically only requiring knowledge of a single existing peer in the mesh to join.\nIt has built-in shared-secret authentication and encryption.\nIt scales to on the order of 100 peers, and has no dependencies.\n\n## Using\n\nMesh is currently distributed as a Go package.\nSee [the API documentation](https://godoc.org/github.com/weaveworks/mesh).\n\nWe plan to offer Mesh as a standalone service + an easy-to-use API.\nWe will support multiple deployment scenarios, including\n as a standalone binary,\n as a container,\n as an ambassador or [sidecar](http://blog.kubernetes.io/2015/06/the-distributed-system-toolkit-patterns.html) component to an existing container,\n and as an infrastructure service in popular platforms.\n\n## Developing\n\nMesh builds with the standard Go tooling. You will need to put the\nrepository in Go's expected directory structure; i.e.,\n`$GOPATH/src/github.com/weaveworks/mesh`.\n\n### Building\n\nIf necessary, you may fetch the latest version of all of the dependencies into your GOPATH via\n\n`go get -d -u -t ./...`\n\nBuild the code with the usual\n\n`go install ./...`\n\n### Testing\n\nAssuming you've fetched dependencies as above,\n\n`go test ./...`\n\n### Dependencies\n\nMesh is a library, designed to be imported into a binary package. \nVendoring is currently the best way for binary package authors to ensure reliable, reproducible builds. \nTherefore, we strongly recommend our users use vendoring for all of their dependencies, including Mesh. \nTo avoid compatibility and availability issues, Mesh doesn't vendor its own dependencies, and doesn't recommend use of third-party import proxies.\n\nThere are several tools to make vendoring easier, including\n [gb](https://getgb.io),\n [gvt](https://github.com/filosottile/gvt),\n [glide](https://github.com/Masterminds/glide), and\n [govendor](https://github.com/kardianos/govendor).\n\n### Workflow\n\nMesh follows a typical PR workflow.\nAll contributions should be made as pull requests that satisfy the guidelines, below.\n\n### Guidelines\n\n- All code must abide [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)\n- Names should abide [What's in a name](https://talks.golang.org/2014/names.slide#1)\n- Code must build on both Linux and Darwin, via plain `go build`\n- Code should have appropriate test coverage, invoked via plain `go test`\n\nIn addition, several mechanical checks are enforced.\nSee [the lint script](/lint) for details.\n\n## \u003ca name=\"help\"\u003e\u003c/a\u003eGetting Help\n\nIf you have any questions about, feedback for or problems with `mesh`:\n\n- Invite yourself to the \u003ca href=\"https://slack.weave.works/\" target=\"_blank\"\u003eWeave Users Slack\u003c/a\u003e.\n- Ask a question on the [#general](https://weave-community.slack.com/messages/general/) slack channel.\n- [File an issue](https://github.com/weaveworks/mesh/issues/new).\n\nYour feedback is always welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweaveworks%2Fmesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweaveworks%2Fmesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweaveworks%2Fmesh/lists"}