Unfortunately, the ESP32 MicroPython implementation of MDNS only allows querying of A records and exposing its' own IP via MDNS. Also the only running library which I could find was SlimDNS which doesn't support the features I require either.
Due to this, I developed an MDNS library in pure Python which runs via uasyncio and supports querying for records, Service Discovery and full fledged Service Announcement with TXT metadata records. It runs fine on my test system of an ESP32 without the need for SPIRAM. It is ,depending on the operation mode, relatively memory intensive (somewhere around 60kb when running service discovery mode).
I hope it is of use for somebody else too.
Links:
- API Reference: https://github.com/cbrand/micropython-m ... FERENCE.md
- List of Example Usage: https://github.com/cbrand/micropython-m ... n/examples