kopia lustrzana https://github.com/Yakifo/amqtt
prepare for 0.11.3 release (#292)
* updating docs, version # and changelog for release 0.11.3pull/293/head^2
rodzic
0d678dfa7c
commit
b4d58c9130
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
# Image name and tag
|
# Image name and tag
|
||||||
IMAGE_NAME := amqtt
|
IMAGE_NAME := amqtt
|
||||||
IMAGE_TAG := latest
|
IMAGE_TAG := latest
|
||||||
VERSION_TAG := 0.11.3-rc.1
|
VERSION_TAG := 0.11.3
|
||||||
REGISTRY := amqtt/$(IMAGE_NAME)
|
REGISTRY := amqtt/$(IMAGE_NAME)
|
||||||
|
|
||||||
# Platforms to build for
|
# Platforms to build for
|
||||||
|
|
15
README.md
15
README.md
|
@ -14,10 +14,21 @@
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Full set of [MQTT 3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) protocol specifications
|
- Full set of [MQTT 3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) protocol specifications
|
||||||
- Communication over TCP and/or websocket, including support for SSL/TLS
|
- Communication over multiple TCP and/or websocket ports, including support for SSL/TLS
|
||||||
- Support QoS 0, QoS 1 and QoS 2 messages flow
|
- Support QoS 0, QoS 1 and QoS 2 messages flow
|
||||||
- Client auto-reconnection on network lost
|
- Client auto-reconnection on network lost
|
||||||
- Custom functionality expansion; plugins included: authentication, `$SYS` topic publishing, session persistence
|
|
||||||
|
- Plugin framework for functionality expansion; included plugins:
|
||||||
|
- `$SYS` topic publishing
|
||||||
|
- AWS IOT-style shadow states
|
||||||
|
- x509 certificate authentication (including cli cert creation)
|
||||||
|
- Secure file-based password authentication
|
||||||
|
- Configuration-based topic authorization
|
||||||
|
- MySQL, Postgres & SQLite user and/or topic auth (including cli manager)
|
||||||
|
- External server (HTTP) user and/or topic auth
|
||||||
|
- LDAP user and/or topic auth
|
||||||
|
- JWT user and/or topic auth
|
||||||
|
- Fail over session persistence
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
"""INIT."""
|
"""INIT."""
|
||||||
|
|
||||||
__version__ = "0.11.3-rc.1"
|
__version__ = "0.11.3"
|
||||||
|
|
|
@ -217,6 +217,9 @@ class BufferWriter(WriterAdapter):
|
||||||
This adapter simply adapts writing to a byte buffer.
|
This adapter simply adapts writing to a byte buffer.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def get_ssl_info(self) -> ssl.SSLObject | None:
|
||||||
|
return None
|
||||||
|
|
||||||
def __init__(self, buffer: bytes = b"") -> None:
|
def __init__(self, buffer: bytes = b"") -> None:
|
||||||
self._stream = io.BytesIO(buffer)
|
self._stream = io.BytesIO(buffer)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,29 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.11.3
|
||||||
|
|
||||||
|
* Structural elements for the 0.11.3 release https://github.com/Yakifo/amqtt/pull/265
|
||||||
|
* Release Candidate Branch for 0.11.3 https://github.com/Yakifo/amqtt/pull/272
|
||||||
|
* update the configuration for the broker running at test.amqtt.io https://github.com/Yakifo/amqtt/pull/271
|
||||||
|
* Improved broker script logging https://github.com/Yakifo/amqtt/pull/277
|
||||||
|
* test.amqtt.io dashboard cleanup https://github.com/Yakifo/amqtt/pull/278
|
||||||
|
* Structured broker and client configurations https://github.com/Yakifo/amqtt/pull/269
|
||||||
|
* Determine auth & topic access via external http server https://github.com/Yakifo/amqtt/pull/262
|
||||||
|
* Plugin: authentication against a relational database https://github.com/Yakifo/amqtt/pull/280
|
||||||
|
* Fixes #247 : expire disconnected sessions https://github.com/Yakifo/amqtt/pull/279
|
||||||
|
* Expanded structure for plugin documentation https://github.com/Yakifo/amqtt/pull/281
|
||||||
|
* Yakifo/amqtt#120 confirms : validate example is functioning https://github.com/Yakifo/amqtt/pull/284
|
||||||
|
* Yakifo/amqtt#39 : adding W0718 'broad exception caught' https://github.com/Yakifo/amqtt/pull/285
|
||||||
|
* Documentation improvement for 0.11.3 https://github.com/Yakifo/amqtt/pull/286
|
||||||
|
* Plugin naming convention https://github.com/Yakifo/amqtt/pull/288
|
||||||
|
* embed amqtt into an existing server https://github.com/Yakifo/amqtt/pull/283
|
||||||
|
* Plugin: rebuild of session persistence https://github.com/Yakifo/amqtt/pull/256
|
||||||
|
* Plugin: determine authentication based on X509 certificates https://github.com/Yakifo/amqtt/pull/264
|
||||||
|
* Plugin: device 'shadows' to bridge device online/offline states https://github.com/Yakifo/amqtt/pull/282
|
||||||
|
* Plugin: authenticate against LDAP server https://github.com/Yakifo/amqtt/pull/287
|
||||||
|
* Sample: broker and client communicating with mqtt over unix socket https://github.com/Yakifo/amqtt/pull/291
|
||||||
|
* Plugin: jwt authentication and authorization https://github.com/Yakifo/amqtt/pull/289
|
||||||
|
|
||||||
## 0.11.2
|
## 0.11.2
|
||||||
|
|
||||||
- config-file based plugin loading [PR #240](https://github.com/Yakifo/amqtt/pull/240)
|
- config-file based plugin loading [PR #240](https://github.com/Yakifo/amqtt/pull/240)
|
||||||
|
|
|
@ -7,10 +7,20 @@
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Full set of [MQTT 3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) protocol specifications
|
- Full set of [MQTT 3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) protocol specifications
|
||||||
- Communication over TCP and/or websocket, including support for SSL/TLS
|
- Communication over multiple TCP and/or websocket ports, including support for SSL/TLS
|
||||||
- Support QoS 0, QoS 1 and QoS 2 messages flow
|
- Support QoS 0, QoS 1 and QoS 2 messages flow
|
||||||
- Client auto-reconnection on network lost
|
- Client auto-reconnection on network lost
|
||||||
- Custom functionality expansion; plugins included: authentication, `$SYS` topic publishing, session persistence
|
- Plugin framework for functionality expansion; included plugins:
|
||||||
|
- `$SYS` topic publishing
|
||||||
|
- AWS IOT-style shadow states
|
||||||
|
- x509 certificate authentication (including cli cert creation)
|
||||||
|
- Secure file-based password authentication
|
||||||
|
- Configuration-based topic authorization
|
||||||
|
- MySQL, Postgres & SQLite user and/or topic auth (including cli manager)
|
||||||
|
- External server (HTTP) user and/or topic auth
|
||||||
|
- LDAP user and/or topic auth
|
||||||
|
- JWT user and/or topic auth
|
||||||
|
- Fail over session persistence
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ classifiers = [
|
||||||
"Programming Language :: Python :: 3.13"
|
"Programming Language :: Python :: 3.13"
|
||||||
]
|
]
|
||||||
|
|
||||||
version = "0.11.3-rc.1"
|
version = "0.11.3"
|
||||||
requires-python = ">=3.10.0"
|
requires-python = ">=3.10.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = { text = "MIT" }
|
license = { text = "MIT" }
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import contextlib
|
import contextlib
|
||||||
import logging
|
import logging
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import ssl
|
||||||
from asyncio import StreamWriter, StreamReader, Event
|
from asyncio import StreamWriter, StreamReader, Event
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
@ -76,6 +77,9 @@ class UnixStreamWriterAdapter(WriterAdapter):
|
||||||
with contextlib.suppress(AttributeError):
|
with contextlib.suppress(AttributeError):
|
||||||
await self._writer.wait_closed()
|
await self._writer.wait_closed()
|
||||||
|
|
||||||
|
def get_ssl_info(self) -> ssl.SSLObject | None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
async def run_broker(socket_file: Path):
|
async def run_broker(socket_file: Path):
|
||||||
|
|
||||||
|
|
2
uv.lock
2
uv.lock
|
@ -129,7 +129,7 @@ wheels = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "amqtt"
|
name = "amqtt"
|
||||||
version = "0.11.3rc1"
|
version = "0.11.3"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "aiohttp" },
|
{ name = "aiohttp" },
|
||||||
|
|
Ładowanie…
Reference in New Issue