I've been getting into using the GPIOs on Pis for arbitrary inputs/outputs. It's easy enough to get started following one of the many many tutorials.
Ignoring that there are a huge number of languages to choose from, within one language there are often many different libraries, each with different capabilities and styles. For instance using sysfs file system and letting linux take care of the translations. I suspect there is also a C API for controlling GPIOs on linux. Using `epoll` fits in there somewhere too. There are a bunch of other ways to control the GPIOs as well. For instance direct register manipulation via `/dev/gpiomem`. Other libraries use `/dev/mem` to access the PWM hardware registers. Some use the DMA hardware of the BCM SoC to achieve hardware like performance on arbitrary GPIO pins. Some libraries also wrap around I2C/SPI/Serial hardware or even bitbang those protocols on any GPIO.
I'm wondering if anyone has attempted to make a list of all the different (popular) GPIO libraries, their features, and internal techniques that are actually used. Anyone else think this could be valuable to the community?