The MySQL C API The MySQL C API Third-Party MySQL APIs For direct access to using MySQL natively within a C application, the C API provides low-level access to the MySQL client/server protocol through the  libmysqlclient  client library. This is the primary method used to connect to an instance of the MySQL server, and is used both by MySQL command-line clients and many of the MySQL Connectors and third-party APIs detailed here. libmysqlclient  is included in MySQL distributions distributions. See also MySQL C API Implementations. To access MySQL from a C application, or to build an interface to MySQL for a language not supported by the Connectors or APIs in this chapter, the C API is where to start. A number of programmer’s utilities are available to help with the process; see Section 4.7, “Program Development Utilities” . The remaining APIs described in this chapter provide an interface to MySQL from specific application languages. These third-party solutions are not developed or supported by Oracle. Basic information on their usage and abilities is provided here for reference purposes only. All the third-party language APIs are developed using one of two methods, using  libmysqlclient  or by implementing a  native driver . The two solutions offer different benefits: • Native drivers  are an implementation of the MySQL network protocol entirely within the host language or environment. Native drivers are fast, as there is less copying of data between components, and they can offer advanced functionality not available through the standard MySQL API. Native drivers are also easier for end users to build and deploy because no copy of the MySQL client libraries is needed to build the native driver components. •Using  libmysqlclient  offers complete compatibility with MySQL because it uses the same libraries as the MySQL client applications. However, the feature set is limited to the implementation and interfaces exposed through  libmysqlclient  and the performance may be lower as data is copied between the native language, and the MySQL API components. Table 29.1, “MySQL APIs and Interfaces”  lists many of the libraries and interfaces available for MySQL. Table 29.1 MySQL APIs and Interfaces 5216 Environment API Type Notes Ada GNU Ada MySQL Bindings libmysqlclient See MySQL Bindings for GNU Ada C C API libmysqlclient See MySQL 8.0 C API Developer Guide. C++ Connector/C++ libmysqlclient See MySQL Connector/C ++ 8.0 Developer Guide. MySQL++ libmysqlclient See MySQL++ website. MySQL wrapped libmysqlclient See MySQL wrapped. Cocoa MySQL-Cocoa libmysqlclient Compatible with the Objective-C Cocoa environment. See http://mysql- cocoa.sourceforge.net/