{"id":20492064,"url":"https://github.com/zotonic/mqtt_sessions","last_synced_at":"2025-04-13T17:01:33.065Z","repository":{"id":44730229,"uuid":"126792512","full_name":"zotonic/mqtt_sessions","owner":"zotonic","description":"MQTT session and topic routing - embeddable in Erlang projects.","archived":false,"fork":false,"pushed_at":"2023-11-15T14:10:03.000Z","size":122,"stargazers_count":3,"open_issues_count":2,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-04-26T13:02:42.177Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Erlang","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/zotonic.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}},"created_at":"2018-03-26T07:46:27.000Z","updated_at":"2024-07-23T14:20:10.675Z","dependencies_parsed_at":"2023-11-15T15:30:26.495Z","dependency_job_id":"a995bef8-aa0c-4f7c-81e1-34f60289c041","html_url":"https://github.com/zotonic/mqtt_sessions","commit_stats":{"total_commits":79,"total_committers":2,"mean_commits":39.5,"dds":0.07594936708860756,"last_synced_commit":"cd616983e39d77806c44d1c22420ed1263a88114"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zotonic%2Fmqtt_sessions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zotonic%2Fmqtt_sessions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zotonic%2Fmqtt_sessions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zotonic%2Fmqtt_sessions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zotonic","download_url":"https://codeload.github.com/zotonic/mqtt_sessions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248750077,"owners_count":21155685,"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-15T17:27:29.602Z","updated_at":"2025-04-13T17:01:33.020Z","avatar_url":"https://github.com/zotonic.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Test](https://github.com/zotonic/mqtt_sessions/workflows/Test/badge.svg)\n\n# MQTT v5 server side sessions and routing\n\nMQTT v5 session and topic routing - embeddable in Erlang projects.\n\nThis library handles pools of MQTT sessions.\nTransports (connections) attach to MQTT sessions to relay packets.\n\nThe sessions handles packets, queues, and a user-context state.\n\nAccess control and authentication is handled with a runtime module.\nThis module is configured in the `mqtt_sessions` application env key `runtime`.\n\nThe default and example runtime is `src/mqtt_sessions_runtime.erl`.\n\nNote that this library does not handle TCP/IP connections. It handles the\ncomplete MQTT session logic. Other libraries are used for transporting the\nMQTT packets to/from external clients.\n\nWhen a subscription is made to a $SYS topic the subscriber is mapped to\nthe default pool. This makes it possible to share system information\nbetween different pools.\n\n### TODO\n\n1. Add protections\n\n - Max packet size\n - Max memory voor retained\n - Max number of pending messages (drop QoS 0)\n - Max pending acks (flow control)\n - Rate limiting\n\n 2. Add instrumentation\n\n - Number of sessions\n - Number of connected sessions\n - Number of packets sent / received\n - Connect rate\n - Memory consumption of retained tables\n - Sessions with biggest queues\n - Sessions with largest number of packets\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzotonic%2Fmqtt_sessions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzotonic%2Fmqtt_sessions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzotonic%2Fmqtt_sessions/lists"}