ggwave is a data-over-sound library that encodes and decodes small amounts of data as audio waveforms for transmission between air-gapped devices.
The library solves the problem of communicating across devices that lack network connectivity by implementing an FSK-based transmission protocol that modulates data into sound. It generates and analyzes raw audio waveforms that can be played through speakers and captured by microphones, leaving the choice of audio backend to the integrator. Error correction codes improve robustness of demodulation. The bandwidth is between 8-16 bytes per second depending on protocol parameters.
The tool suits projects involving microcontrollers, IoT devices, and scenarios where audio is the only available communication channel. It works on Arduino, ESP32, and RP2040 platforms as well as general-purpose computers. The library is particularly useful for serverless file sharing, device pairing and contact exchange, audio QR codes, and authorization flows. A waver application is provided for testing the library across multiple platforms without requiring custom integration.
Development activity shows consistent engagement with the project through examples covering diverse use cases including microcontroller implementations, PC speaker transmission, and interactive button-based interfaces. The maintainer has documented multiple real-world applications and maintains a discussion forum for community questions about implementation approaches.