the libmsocket socket abstraction library