The package provides Go bindings for ALAC decoder (C version by David Hammerton) with community patches.
All the binding code has automatically been generated with rules defined in alac.yml.
$ go get github.com/xlab/alac-go/alac
There is a player implemented in Go that can read M4A ALAC files and play them via portaudio-go. So you will need to get portaudio installed first. 03-Morcheeba-Otherwise.m4a direct link.
$ brew install portaudio
$ go get github.com/xlab/alac-go/cmd/alac-player
$ ./alac-player 03-Morcheeba-Otherwise.m4a
ALAC header: 616C616300000000000010000010280A0E0200FF000034DF000DBCB40000AC44
Audio duration: 224.026s
[==>-----------------------------------------------------------------------------------------------------------------] 2.20 %
You will need to get the c-for-go tool installed first.
$ git clone https://github.com/xlab/alac-go && cd alac-go
$ make clean
$ make