{"id":18111660,"url":"https://github.com/laymer/bondy","last_synced_at":"2025-04-06T08:21:47.520Z","repository":{"id":67404663,"uuid":"196371902","full_name":"Laymer/bondy","owner":"Laymer","description":"Leapsight Bondy is an open source networking platform for distributed MicroServices and IoT applications written in Erlang. Bondy implements the open Web Application Messaging Protocol (WAMP) offering both PubSub and routed RPC.","archived":false,"fork":false,"pushed_at":"2019-07-10T10:44:12.000Z","size":4958,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-12T13:56:51.053Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Erlang","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/Laymer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2019-07-11T10:19:21.000Z","updated_at":"2024-09-27T14:29:10.000Z","dependencies_parsed_at":"2023-03-15T00:16:34.171Z","dependency_job_id":null,"html_url":"https://github.com/Laymer/bondy","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laymer%2Fbondy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laymer%2Fbondy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laymer%2Fbondy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laymer%2Fbondy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Laymer","download_url":"https://codeload.github.com/Laymer/bondy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247452768,"owners_count":20941167,"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":[],"created_at":"2024-11-01T01:07:05.339Z","updated_at":"2025-04-06T08:21:47.503Z","avatar_url":"https://github.com/Laymer.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Bondy: A Distributed WAMP Router and API Gateway\n\nBondy is an open source scaleable and robust networking platform for distributed microservices and IoT applications written in Erlang. It implements the open Web Application Messaging Protocol (WAMP) offering both Publish and Subscribe (PubSub) and routed Remote Procedure Calls (RPC) comunication patterns. It also provides a built-in HTTP/REST API Gateway.\n\nBondy is Apache2 licensed.\n\n**DOCS COMING SOON**\n\n## Quick Start\nBondy requires Erlang/OTP 20.3.8 (support for 21 on the way) and `rebar3`.\n\nThe fastest way to get going is to have the [rebar3_run](https://www.rebar3.org/docs/using-available-plugins#section-run-release) plugin.\n\n### Run a first node\nWe will start a node named `bondy1@127.0.0.1` which uses the following variables from the config file (`config/test1/vars.config`).\n\n|Transport|Description|Port|\n|---|---|---|\n|HTTP|REST API GATEWAY|18080|\n|HTTP|REST API GATEWAY|18083|\n|HTTP|REST Admin API|18081|\n|HTTPS|REST Admin API|18084|\n|Websockets|WAMP|18080|\n|TCP|WAMP Raw Socket|18082|\n|TLS|WAMP Raw Socket|18085|\n\n\n```bash\nrebar3 as test1 run\n```\n\n### Create a Realm\nWAMP is a session-based protocol. Each session belongs to a Realm.\n\n```curl\ncurl -X \"POST\" \"http://localhost:18081/realms/\" \\\n     -H 'Content-Type: application/json; charset=utf-8' \\\n     -H 'Accept: application/json; charset=utf-8' \\\n     -d $'{\n  \"uri\": \"com.myrealm\",\n  \"description\": \"My First Realm\"\n}'\n```\n\n### Disable Security\nWe will disable security to avoid setting up credentials at this moment.\n\n```curl\ncurl -X \"DELETE\" \"http://localhost:18081/realms/com.myrealm/security_enabled\" \\\n     -H 'Content-Type: application/json; charset=utf-8' \\\n     -H 'Accept: application/json; charset=utf-8'\n```\n\n### Run a second node\nWe start a second node named `bondy2@127.0.0.1` which uses the following variables from the config file (`config/test2/vars.config`).\n\n|Transport|Description|Port|\n|---|---|---|\n|HTTP|REST API GATEWAY|18180|\n|HTTP|REST API GATEWAY|18183|\n|HTTP|REST Admin API|18181|\n|HTTPS|REST Admin API|18184|\n|Websockets|WAMP|18180|\n|TCP|WAMP Raw Socket|18182|\n|TLS|WAMP Raw Socket|18185|\n\n```bash\nrebar3 as test2 run\n```\n\n### Connect the two\nIn `bondy1@127.0.0.1` erlang's shell type:\n\n```erlang\n(bondy2@127.0.0.1)1\u003e bondy_peer_service:join('bondy2@127.0.0.1').\n```\n\nOne minute after joining the cluster the nodes the Active Anti-entropy service will trigger an exchange after which the Realm we have created in `bondy1@127.0.0.1` will have been replicated to `bondy2@127.0.0.1`.\n\n\n## References\n\n* Read more about [WAMP](wamp-proto.org)\n\n## Important links\n\n* #bondy on slack (coming soon!)\n* Bondy Documentation and Guides (coming soon!)\n* [Follow us on twitter @leapsight](https://twitter.com/leapsight)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaymer%2Fbondy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaymer%2Fbondy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaymer%2Fbondy/lists"}