Обго́ртка бібліоте́ки () — є проміжним шаром між прикладною програмою та іншою бібліотекою або інтерфейсом програмування додатку (API).

Метою написання обгортки бібліотеки може бути забезпечення нормальної роботи бібліотеки (API) в якій-небудь (найчастіше скриптовій) мові, в якій прямий виклик функцій цієї бібліотеки API ускладнений або неможливий. Іншою метою може бути забезпечення додаткової зручності для прикладного програміста — адаптація бібліотек до об'єктно-орієнтованого стилю програмування, компенсація незручного дизайну бібліотеки та ін. Існують також крос-платформові обгортки бібліотек, які приховують реалізацію для різних операційних систем, наприклад WxWidgets.

Приклад Приклад показує загальну реалізацію бібліотеки-обгортки. Тут інтерфейс C++ діє як "обгортка" навколо інтерфейсу на мові C.

C-інтерфейс int pthread_mutex_init(pthread_mutex_t * mutex , pthread_mutexattr_t * attr); int pthread_mutex_destroy (pthread_mutex_t * mutex); int pthread_mutex_lock (pthread_mutex_t * mutex ); int pthread_mutex_unlock (pthread_mutex_t * mutex );

C++-обгортка class Mutex { pthread_mutex_t mutex;

public:

Mutex()

pthread_mutex_init(&mutex, 0);

~Mutex()

pthread_mutex_destroy(&mutex);

private:

friend class Lock;

void lock()

pthread_mutex_lock(&mutex);

void unlock()

pthread_mutex_unlock(&mutex);

class Lock { Mutex& mutex; public: Lock(Mutex& mutex):mutex(mutex){mutex.lock();} ~Lock(){mutex.unlock();}

Початковий C-інтерфейс можна розглядати як недостатньо надійний, зокрема може статися так, що користувачі бібліотеки забудуть розблокувати заблокований мютекс. Новий інтерфейс, використовує RAII в нових класах Mutex і Lock для забезпечення автоматичного розблокування Mutex і, відповідно, об'єкта pthread_mutex_t.

Зв'язність між несумісними мовами, середовищами виконання Деякі бібліотеки-обгортки працюють як міст між клієнтською програмою та бібліотекою, яка використовує іншу, несумісну технологію із основною програмою. Наприклад, Java програми працюють в віртуальній машині й не можуть напряму викликати системні функції ОС, які реалізовані на C. В таких мовах програмування, як Java, замість окремих бібліотек-обгорток використовується окремий механізм — інтерфейс до зовнішніх функцій.

Деякі приклади реалізації такого механізму: Java Native Interface Java Native Access SWIG

Відомі обгортки бібліотек Кілька прикладів відомих обгорток бібліотек Pthreads for WIN32 OpenGL Bindings for Python MySQL++ JavaCV

Див. також Адаптер З'єднувальний код Функція-обгортка