{"id":14963534,"url":"https://github.com/telemq/telemq","last_synced_at":"2025-10-25T02:30:55.497Z","repository":{"id":45181168,"uuid":"419881148","full_name":"telemq/telemq","owner":"telemq","description":"Experimental MQTT broker","archived":false,"fork":false,"pushed_at":"2023-04-25T17:30:22.000Z","size":256,"stargazers_count":13,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-31T05:03:48.375Z","etag":null,"topics":["iot","mqtt","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/telemq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_APACHE","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":"2021-10-21T21:25:49.000Z","updated_at":"2022-12-31T06:00:02.000Z","dependencies_parsed_at":"2024-09-13T19:20:00.857Z","dependency_job_id":"35cae084-5591-4100-acaa-3f7542bc973f","html_url":"https://github.com/telemq/telemq","commit_stats":{"total_commits":47,"total_committers":2,"mean_commits":23.5,"dds":0.1063829787234043,"last_synced_commit":"eceece124e5e0c87ab16ce945a5661a90bfc9294"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemq%2Ftelemq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemq%2Ftelemq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemq%2Ftelemq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemq%2Ftelemq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/telemq","download_url":"https://codeload.github.com/telemq/telemq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238065137,"owners_count":19410587,"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","mqtt","rust"],"created_at":"2024-09-24T13:31:45.140Z","updated_at":"2025-10-25T02:30:55.140Z","avatar_url":"https://github.com/telemq.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TeleMQ\n\n![TeleMQ - MQTT broker](./docs/telemq-logo-white.svg)\n\nTeleMQ is an experimental MQTT broker implemented in Rust language. The broker implements [MQTT version 3.1.1](https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html) specification.\n\n## Content\n\n- [Build from source code](#build-from-the-source-code)\n- [Run TeleMQ](#run-telemq)\n- [Run in Docker](#run-in-docker)\n- [$SYS Topics](#sys-topics)\n- [License](#license)\n\n## Build from the source code\n\nIn order to buil TeleMQ from the source code, you need to have [Rust](https://www.rust-lang.org/) programming language installed on your computer. The most common way to do it is via Rustup - a toolchain for managing Rust environment.\n\nThe official installation guide can be found on https://www.rust-lang.org/tools/install page.\n\nNeed more info about Rustup itself? Please follow the docs - https://rust-lang.github.io/rustup/.\n\nOnce you have Rust installed, clone the TeleMQ repo into an appropriate folder on your filesystem.\n\n```\ngit clone https://github.com/telemq/telemq.git \u003cDESTINATION_FOLDER\u003e\n```\n\nAfter that go to the destination folder `cd \u003cDESTINATION_FOLDER\u003e` (you should have `Cargo.toml` file in the folder where you navigated) and run a `build` command from Cargo.\n\n\u003e Cargo is the Rust package manager. Cargo downloads your Rust package's dependencies, compiles your packages, makes distributable packages, and uploads them to crates.io, the Rust community’s package registry. You can contribute to this book on GitHub.\n\nhttps://doc.rust-lang.org/cargo/\n\n```\ncargo build\n```\n\nThis will producer a development build without any optimisations which might be necessary for the production. The binary file can is `\u003cDESTINATION_FOLDER\u003e/target/debug/telemq`.\n\nIn order to have a production-optimised binary, please, run the `build` command with the `--release` flag.\n\n```\ncargo build --release\n```\n\nSimilarly to the dev build, the produced binary in `\u003cDESTINATION_FOLDER\u003e/target/release/telemq`.\n\nThose binaries are statically linked and are self-sufficient, thus can be moved anywhere if needed.\n\n## Run TeleMQ\n\nAssuming, you either are in the same folder where you have `telemq` binary file or you have added this folder to your `$PATH`, you can ran it with a default config simply with following command:\n\n```\ntelemq\n```\n\nTeleMQ being ran with a default config will open a plain TCP listener on `0.0.0.0:1883`, will allow to connect any client. And will allow those clients to subscribe and to publish to any topic name. Logs will be streamed to stdout, all logs starting from `INFO` level will be shown. Keep alive interval is **_120 secs_** - make sure your client sends at least one message (PUBLISH or PINGREQ) per this interval. Maximal number of connection is 10,000.\n\nTo see all options, run\n\n```\ntelemq --help\n```\n\nTo override the default behaviour, one can use a TeleMQ config file. Information about a configuration options can be found in [`telemq_config.md`](./docs/telemq_config.md).\n\n## Run in Docker\n\nThe basic run:\n\n```bash\ndocker run -it -p 1883:1883 alexpikalov/telemq\n```\n\nWith a custom config:\n\n```bash\ndocker run -it -p 1883:1883 -v docker_volume_with_config alexpikalov/telemq --config=/path/to/config.toml\n```\n\nFor the second option a respective volume with a [config TOML](./docs/telemq_config.md) file should be created.\n\n## $SYS topics\n\n$SYS topics are the special topics which a broker itself uses to publish to all subscribers system information about itself.\n\n- `$SYS/broker/bytes/received` - contains an information about a number of bytes a broker received from producers since the broker is running.\n- `$SYS/broker/bytes/sent` - contains an information about a number of bytes a broker sent to consumers since the broker is running.\n- `$SYS/broker/messages/received` - contains an information about a number of messages a broker received from producers since the broker is running.\n- `$SYS/broker/messages/sent` - contains an information about a number of messages a broker sent to consumers since the broker is running.\n- `$SYS/broker/clients/connected` - contains an information about a number of clients currently connected to the broker.\n- `$SYS/broker/clients/maximum` - contains an information about a maximal number of clients ever being connected simultaneously to the broker.\n\n## License\n\nThis project is licensed under either of\n\n- Apache License, Version 2.0, ([LICENSE_APACHE](./LICENSE_APACHE.txt))\n- MIT license ([LICENSE_MIT](./LICENSE_MIT.txt))\n\nat your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelemq%2Ftelemq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelemq%2Ftelemq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelemq%2Ftelemq/lists"}