A wrapper is a driver stub that emulates some API library and converts them to calls to another driver's API.
The common issues with such drivers are:
  1. API calls are seldom mappable 1-to-1. That forces unwanted complexity and performance hit compared to the target driver or the emulated one, and introduces reliability problems.
  2. When wrappers are custom-made to support certain applications, they neglect to implement API calls which are not used by the targeted application; The wrapper is then unsuitable for any other purpose.
  3. By perpetuating support for deprecated APIs; they stall re-engineering of existing applications using the older APIs and stifle adoption of newer APIs.

Example of wrappers: