Drizzle Redux is a project which aims to breathe new life into the libdrizzle C connector. It is designed to allow you to syn- or asynchronously connect to and query a MySQL database server using a simple API.
Libdrizzle-redux is a fork of the official v5.1.4 Felmingham release available at https://launchpad.net/libdrizzle.
The primary reason for the fork is that development of the upstream stopped in 2013 which meant that crucial fixes and enhancements were not included in the latest stable release v5.1.4 Felmingham.
We hope that continuing the development of libdrizzle-redux can benefit current and future users of the library.
For more details on new features please refer to the release notes
- Major branch development period: 6 months
- Maintained minor versions: 1 most recent
Major | Initial release date | Supported until |
---|---|---|
v6.x.x | v6.0.0: 2017-04-06 | TBA - 6 months after next major release |
Latest stable release notes | All
The release process libdrizzle-redux is based on SemVer versioning as described here. This means that the major version is increased for breaking changes, the minor version is increased for feature releases, and the patch version is increased for bug fixes that don't cause breaking changes.
Releases are handled using GitHub releases. The notes associated with a major or minor GitHub release are designed to help developers to migrate from one version to another. The changes listed are the steps you need to take to move from the previous version to the one listed.
There are several options for installing the library:
- The project's apt repository at bintray offers
deb
packages for Ubuntu Xenial and Bionic. - Build from source.
- Build and install the
deb
orrpm
packages locally.
Please refer to the section Installing Libdrizzle Redux in the documentation for more info.
Supported compilers
Compiler | Version |
---|---|
GNU gcc | >=4.5.x |
LLVM clang | >=3.3 |
Apple LLVM clang [1] | >=6.1 |
[1] | The version listed for Apple LLVM is the compiler used in the OS X builds on Travis CI. However earlier versions should be compatible as long as they support C++11 features, i.e. Apple LLVM 5.0, Xcode 5.0 and later. |
Other Dependencies
Dependency | Version |
---|---|
autoconf | >=2.61 |
zlib1g-dev | >=0.13.x |
libtool | >=2.x |
libssl-dev [3] | >=v1.x |
[3] | openssl is needed if libdrizzle-redux is compiled with support for SSL connections. |
To build libdrizzle-redux run the following commands:
mkdir build && cd build autoreconf -fi .. ../configure make make install
For more information about compiling libdrizzle-redux please refer to compiling.rst or build the documentation, cf. below.
Linking libdrizzle-redux:
Ensure the library is in your library and include paths. For releases prior to
version v6.0.2
[2] linking your app against libdrizzle-redux requires the flag
-ldrizzle-redux
:
g++ app.c -oapp -ldrizzle-redux -lssl -lcrypto -pthread
From version v6.0.3
and later the API level of the library is appended to
the installed library name. This is also reflected in the install path for
development headers which now follows the pattern:
/<include-prefix>/libdrizzle-redux[MAJOR_VERSION]/libdrizzle-redux
Thus, linking against libdrizzle-redux v6.0.3
requires the flag
-ldrizzle-redux6
and if headers are included to add
-I/<prefix>/libdrizzle-redux6
, e.g:
g++ app.c -oapp -I/usr/include/libdrizzle-redux6 -ldrizzle-redux6 -lssl -lcrypto -pthread
Another option is to link against libdrizzle-redux using the full name of the dynamic library, e.g.:
g++ app.c -oapp -I/usr/include/libdrizzle-redux6 -l:libdrizzle-redux6.so.13 -lssl -lcrypto -pthread
[2] | v6.0.2 added the major version to the package name and the library file but the release is deprecated since the linking did not work correctly. |
Building documentation
Documentation can be generated in several formats:
pdf : make latexpdf epub : make epub html : make html
We appreciate any contributions to the development of libdrizzle-redux. One requirement is that the changes should be added in accordance with a versioning scheme based on SemVer. A set of guidelines guidelines and tools to help developers and users are available at the wiki of the `Neptune`_ project.