Implementing communication between hardware and software components can be a time-consuming task. Numerous communication protocols are available, differing greatly in their implementation details. Designers must spend much time focusing on those details. Even when libraries are available to encapsulate communication into C or VHDL routines, these routines are not consistent across protocols, making it difficult to switch to other protocols. In this paper, we propose an object-oriented communication library, which provides pre-implemented channel-based send/receive communication primitives, allowing easy implementation and seamless migration across protocols and components.