# eXtremeDB Extension Module Windows Dynamic Link Libraries - target/bin.so

> As explained in the eXtremeDB Windows Libraries page, the `\target\bin.so` directory under your eXtremeDB installation root directory contains, in addition to the basic libraries, additional contents that depend on the specific eXtremeDB Extension Modules purchased. Java and NET applications, as well as xSQL, load these at run time; C/C++ and Python applications can optionally load them dynamically using function `mco_core_load()`. As explained in the basic libraries page, each library is provided in two forms: debug and release mode.

> The Dynamic Link Libraries are described below (only release mode filenames are shown):

> ## SQL Support

> eXtremeSQL provides several libraries that can be loaded on demand by xSQL depending on command line arguments or config file parameters.

> For packages with eXtremeSQL the following libraries are provided:

> mcosql_mursiw.dll | For In-Memory database transactions using conventional memory; loaded by specifying command line option "`-mursiw`" or config file parameter `transaction_manager : mursiw,` (this is the default transaction manager)
> mcosql_mursiw_shm.dll | For In-Memory database transactions using shared memory; loaded by specifying command line options "`-mursiw -shared`" or config file parameters `transaction_manager : mursiw,` and `shared_memory : true,`
> mcosql_disk_mursiw.dll | For Persistent and Hybrid database transactions using conventional memory; loaded by specifying command line options "`-mursiw -disk`" or config file parameters `transaction_manager : mursiw,` and `disk_support : true,`
> mcosql_disk_mursiw_shm.dll | For Persistent and Hybrid database transactions using shared memory; loaded by specifying command line options "`-mursiw -shared -disk`" or config file parameters `transaction_manager : mursiw,`, `shared_memory : true,` and `disk_support : true,`
> mcosql_mvcc.dll | For In-Memory database transactions using conventional memory; loaded by specifying command line option "`-mvcc`" or config file parameter `transaction_manager : mvcc,`
> mcosql_mvcc_shm.dll | For In-Memory database transactions using shared memory; loaded by specifying command line options "`-mvcc-shared`" or config file parameters `transaction_manager : mvcc,` and `shared_memory : true,`
> mcosql_disk_mvcc.dll | For Persistent and Hybrid database transactions using conventional memory; loaded by specifying command line options "`-mvcc -disk`" or config file parameters `transaction_manager : mvcc,` and `disk_support : true,`
> mcosql_disk_mvcc_shm.dll | For Persistent and Hybrid database transactions using shared memory; loaded by specifying command line options "`-mvcc-shared -disk`" or config file parameters `transaction_manager : mvcc,`, `shared_memory : true,` and `disk_support : true,`

> ### HTTP Viewer with SQL Capability

> The HTTP Viewer in eXtremeSQL packages provides the following library which can be used to provide SQL capability in the HTTP Viewer.

> mcohv_sql.dll | HTTP Viewer with SQL Interface (required for the SQL variant of HTTP Viewer. Note that if this library is used, the other SQL support libraries must also be linked )

> ### Remote SQL

> Remote SQL applications require the following additional library:

> mcorsql.dll | Remote SQL implementation

> ## High Availability Support

> eXtremeDB High Availability packages provide the following libraries. All applications that use the High Availability API must link with:

> mcoha.dll | High Availability API

> and, in addition, one of the following transport layer libraries (or else implement its own custom transport layer):

> mconwpip.dll | PIPE Transport Layer
> mconwtcp.dll | TCP/IP Transport Layer
> mconwudp.dll | UDP Transport Layer
> mcoiter.lib | Implements iterators and streams for publishing detailed information about all database changes made by transactions; used in HA to publish operations on the replica side (see page High Availability Dynamic Schema Modification for further details)

> ### Cluster Support

> eXtremeDB High Availability packages also include the following Cluster libraries. All applications that use the Cluster API must link with:

> mcocluster.dll | Cluster core implementation

> and, in addition, either the following transport layer library (or else implement its own custom transport layer):

> mcocltcp.dll | TCP/IP Transport Layer

> ## Performance Monitor

> The Performance Monitory API can be implemented in a custom application and in this case include just the `mcoperf` library. Or it can be used with the provided HTTP implementation in `libmcohvperf` in which case both libraries are required:

> mcoperf.dll | Performance Monitor implementation
> mcohvperf.dll | HTTP interface to the Performance Monitor

> ## Web Services

> Applications that wish to use the web services must load the following libraries:

> mcorest.dll | The embedded Web Services REST API
> mcoews.dll | HTTP server implementation

> Applications that wish to expose an existing web service must load its library, as well as its dependencies:

> mcorestdb.dll | The `database` Web Service; requires `mcouda` for UDA APIs
> mcorestsql.dll | The `SQL` Web Service; requires `mcosql`
> mcorestperf.dll | The `perfmon` Web Service; requires `mcoperf`
> mcoresttrace.dll | The `tracer` Web Service