{"id":28755751,"url":"https://github.com/solanus-systems/amqc","last_synced_at":"2026-05-11T07:53:25.745Z","repository":{"id":296289072,"uuid":"992883951","full_name":"solanus-systems/amqc","owner":"solanus-systems","description":"An async MQTTv5 client for unix and ESP32 micropython","archived":false,"fork":false,"pushed_at":"2025-06-05T23:57:26.000Z","size":69,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-06T00:32:30.483Z","etag":null,"topics":["asyncio","micropython","mqtt"],"latest_commit_sha":null,"homepage":"","language":"Python","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/solanus-systems.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,"zenodo":null}},"created_at":"2025-05-29T21:34:00.000Z","updated_at":"2025-06-05T23:57:20.000Z","dependencies_parsed_at":"2025-06-03T03:47:36.609Z","dependency_job_id":null,"html_url":"https://github.com/solanus-systems/amqc","commit_stats":null,"previous_names":["solanus-systems/amqc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/solanus-systems/amqc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solanus-systems%2Famqc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solanus-systems%2Famqc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solanus-systems%2Famqc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solanus-systems%2Famqc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solanus-systems","download_url":"https://codeload.github.com/solanus-systems/amqc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solanus-systems%2Famqc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260281521,"owners_count":22985623,"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":["asyncio","micropython","mqtt"],"created_at":"2025-06-17T03:00:47.135Z","updated_at":"2026-05-11T07:53:20.707Z","avatar_url":"https://github.com/solanus-systems.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# amqc\n\n[![ci](https://github.com/solanus-systems/amqc/actions/workflows/ci.yml/badge.svg)](https://github.com/solanus-systems/amqc/actions/workflows/ci.yml)\n\nAn async MQTTv5 client for micropython on ESP32 and unix.\n\nAdapted from [mqtt_as](https://github.com/zcattacz/mqtt_as) and [micropython-mqtt](https://github.com/peterhinch/micropython-mqtt/tree/master).\n\n## Installation\n\nOn a micropython device, install with `mip` from the REPL:\n\n```python\n\u003e\u003e\u003e import mip\n\u003e\u003e\u003e mip.install(\"github:solanus-systems/amqc\")\n```\n\nOr on a unix build of micropython via the CLI:\n\n```bash\nmicropython -m mip install github:solanus-systems/amqc\n```\n\n## Usage\n\nTODO\n\n## Developing\n\nYou need python and a build of micropython with `asyncio` support. Follow the steps in the CI workflow to get a `micropython` binary and add it to your `PATH`.\n\nBefore making changes, install the development (CPython) dependencies:\n\n```bash\npip install -r dev-requirements.txt\n```\n\n### Linting\n\nThis project uses [ruff](https://github.com/astral-sh/ruff) for linting. After making changes, you can run the linter:\n\n```bash\nruff check\n```\n\n### Testing\n\nBefore running tests, install the test (micropython) dependencies:\n\n```bash\n./bin/setup\n```\n\nNote that you need to set up your `MICROPYPATH` environment variable so that the local copy of the package is loaded before any installed packages.\n\n```bash\nexport MICROPYPATH=\"$(pwd)/tests/mocks:$(pwd):.frozen:~/.micropython/lib:/usr/lib/micropython\"\n```\n\n#### Unit tests\n\nYou can run the unit tests using the micropython version of `unittest`:\n\n```bash\nmicropython -m unittest\n```\n\n#### Integration tests\n\nIntegration tests use a running MQTT broker ([mosquitto](https://mosquitto.org/)), which you need to have installed (e.g. with `brew`).\n\nThere is a script that will set up the test environment, run the tests, and tear down the broker afterward:\n\n```bash\n./bin/test_e2e\n```\n\nSometimes it's useful to debug an individual integration test. To do this, you need to run the broker yourself, then set up the environment and invoke the test directly:\n\n```bash\nmosquitto -v  # keep open to check the broker logs\n```\n\nThen in another terminal:\n\n```bash\nLOG_LEVEL=DEBUG MICROPYPATH=\"$(pwd)/tests/mocks:$(pwd):.frozen:~/.micropython/lib:/usr/lib/micropython\" micropython ./tests/e2e/e2e_pubsub.py\n```\n\n## Releasing\n\nTo release a new version, update the version in `package.json`. Commit your changes and make a pull request. After merging, create a new tag and push to GitHub:\n\n```bash\ngit tag vX.Y.Z\ngit push --tags\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolanus-systems%2Famqc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolanus-systems%2Famqc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolanus-systems%2Famqc/lists"}