A wrapper is a driver stub
library and converts them to calls to another driver's API
The common issues with such drivers are:
- 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.
- 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.
- 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: