MPD, the Music Player Daemon, is a free-as-in-speech music server for your computer. It can keep a list of your music library, and interfaces with the sound devices to play music for you.
Unlike most music players, however, MPD allows a separation between the actual underlying music-playing, and the interface you use to manipulate what is playing.
Net::Async::MPD is an asynchronous library that allows you to talk to an MPD server. It was mostly started as a simple way to teach myself about asynchronous programming, but has since then become a fully featured client.
The project has been written in Perl, and its source code is currently hosted on Gitlab.