Wrapper libraries (or library wrappers) consist of a thin layer of code (a 'shim') which translates a library's existing interface into a compatible interface. This is done for several reasons: Wrapper libraries (or library wrappers) consist of a thin layer of code (a 'shim') which translates a library's existing interface into a compatible interface. This is done for several reasons: Wrapper libraries can be implemented using the adapter, façade, and to a lesser extent, proxy design patterns. The specific way in which a wrapper library is implemented is highly specific to the environment it is being written in and the scenarios which it intends to address. This is especially true in the case when cross language/runtime interoperability is a consideration.