i-rinat/apulse
FreePulseAudio emulation for ALSA
About i-rinat/apulse
Apulse is a lightweight compatibility layer that provides a partial implementation of the PulseAudio API, enabling PulseAudio-dependent applications to run on systems that only have ALSA. It consists of a loader script and shared libraries that mimic PulseAudio's interface, intercepting audio calls and routing them through ALSA's built-in dmix, dsnoop, and plug plugins. Unlike a full PulseAudio stack, apulse does not use a separate sound mixing daemon; instead it leverages ALSA's native capabilities for multi-stream playback and capture. The project is designed as a drop-in alternative only for essential API functions, making it particularly useful for running applications like Skype on ALSA-only environments without the overhead of PulseAudio.
Key Features
Pros & Cons
- No separate audio daemon required; uses existing ALSA plugins
- Lightweight and focused—only implements essential PulseAudio API parts
- Works with standard ALSA configurations (dmix, dsnoop, plug enabled by default)
- Easy to build and install using CMake
- Free and open source (MIT license)
- Not a complete PulseAudio drop-in replacement; some applications may not work
- Requires ALSA development libraries and GLib to build
- Applications must be launched via the apulse wrapper script to use the libraries
- Limited to audio features that ALSA's dmix/dsnoop/plug can provide