Coming along with the next release of liquidsoap, we have just released a new module for ocaml, namely ocaml-cry.
Ocaml-cry is a native implementation of the protocols used for sending source data to icecast and shoutcast servers.
The main difference with the famous libshout implementation is about flexibility. This module allows to set any source header, which in particular allows to use any custom format which is compatible with the servers.
However, contrary to libshout, ocaml-cry does not handle the synchronisation of the audio data sent to the servers. Hence, the task of controling the rate of the data sent is up to the programmer.
You can find more informations on this module there:
http://www.rastageeks.org/cry.html
Debian packages are available there [1]:
blog.rastageeks.org