Well… today was quite a wet and rainy day. Not a lot of activity here other than blowing the dust off an AX.25 stack I've been working on for a little while. This is written in pure Python and implements both AX.25 and APRS standards, including connected mode. It's shipped as a library to include in your Python (asyncio) applications.
https://codeberg.org/sjlongland/aioax25/
https://github.com/sjlongland/aioax25/
I'll probably do a release soon, as I've spent the day refining the API a bit and cleaning up the unit tests. I've finally now got 100% code coverage on this and it's being tested on Python 3.9-3.14.
One thing I'm considering is some sort of stream socket protocol (TCP, AF_UNIX and maybe websocket) that can be used to expose the functions of the stack to a separate program. Something like the AGWPE protocol in concept — but different as I don't want any legal trouble. I also think the AGWPE protocol is a bit limiting.