{"id":20258817,"url":"https://github.com/smacken/mqttbridge","last_synced_at":"2026-05-18T17:02:41.763Z","repository":{"id":48555116,"uuid":"252591751","full_name":"smacken/MqttBridge","owner":"smacken","description":"Mqtt Broker bridge - bridge between mqtt brokers one-way/two way sync","archived":false,"fork":false,"pushed_at":"2021-07-20T17:17:06.000Z","size":65,"stargazers_count":1,"open_issues_count":11,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-14T04:09:55.635Z","etag":null,"topics":["iot","iot-gateway","mqtt","mqtt-brokers","mqtt-client","mqtt-connector"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smacken.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-03T00:03:48.000Z","updated_at":"2023-09-28T22:36:40.000Z","dependencies_parsed_at":"2022-09-01T06:40:55.408Z","dependency_job_id":null,"html_url":"https://github.com/smacken/MqttBridge","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smacken%2FMqttBridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smacken%2FMqttBridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smacken%2FMqttBridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smacken%2FMqttBridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smacken","download_url":"https://codeload.github.com/smacken/MqttBridge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241718220,"owners_count":20008527,"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":["iot","iot-gateway","mqtt","mqtt-brokers","mqtt-client","mqtt-connector"],"created_at":"2024-11-14T11:11:44.829Z","updated_at":"2026-05-18T17:02:36.712Z","avatar_url":"https://github.com/smacken.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MQTT Bridge\n\nBridge two MQTT Brokers to pass topic messages between them. Acts as a client on both brokers\nrather than broker-broker bridge ala Mosquitto.\n\nThe idea is to bridge between physical-physical brokers or physical-cloud brokers.\n\nBridge can be one-way (primary \u003e secondary) or two-way with sync between brokers.\n\nTopics can be filtered for each broker for messages bridged.\n\n## Getting Started\n\n1. Run the app by entering the following command in the command shell:\n\n   ```console\n    dotnet run -- --config=config.json\n   ```\n\n2. CLI - Can configure cli via config file in yaml/json. Or by passing values directly\n\n   ```console\n   MqttBridge.exe --config=config.json\n   ```\n\n   ```console\n   MqttBridge.exe --primary=localhost:1883 --secondary=localhost:1884\n   ```\n\n3. Library - Bridge can be configured with primary \u0026 secondary brokers.\n\n   ```c#\n      var primaryOptions = new MqttClientOptionsBuilder()\n                  .WithClientId(\"Primary\")\n                  .WithTcpServer(\"localhost\", 1883)\n                  .WithCleanSession();\n      var bridgeOptions = new BridgeOptions\n      {\n            PrimaryOptions = primaryOptions.Build(),\n            SecondaryOptions = secondaryOptions.Build(),\n            PrimaryFilters = new TopicFilter[] {new TopicFilterBuilder().WithTopic(\"primary/topic\").Build()}\n            SecondaryFilters = new TopicFilter[] {new TopicFilterBuilder().WithTopic(\"secondary/topic\").Build()}\n            SyncMode = true\n      };\n      var bridge = new Bridge(bridgeOptions);\n      await bridge.ConnectAsync(CancellationToken.None); \n   ```\n\n### Prerequisites\n\nInstall the following:\n\n- [.NET Core](https://dotnet.microsoft.com/download).\n\n### Installing\n\nMqttBridgeCli.exe from releases\n\nNuget MqttBridge from packages\n\n## Running the tests\n\nxUnit testing\n\n```bash\ndotnet test\n```\n\n\n### Break down into end to end tests\n\nTesting templates being used\n\n```\ndotnet test\n```\n\n### And coding style tests\n\nEditor.config\n\n```\nEditor.config\n```\n\n## Deployment\n\n```\ndotnet publish\n```\n\n## Built With\n\n* [MqttNet](https://github.com/migueldeicaza/gui.cs) - MqttNet\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us.\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags). \n\n## Authors\n\n* **Scott Mackenzie** - *Initial work* - [Smacktech](https://github.com/smacken)\n\nSee also the list of [contributors](https://github.com/smacken/templated/contributors) who participated in this project.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n\n## Acknowledgments\n\n* mmm\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmacken%2Fmqttbridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmacken%2Fmqttbridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmacken%2Fmqttbridge/lists"}