Skip to content

The next generation of Libdrizzle with a simplified API and support for more features of the protocol

License

Notifications You must be signed in to change notification settings

sociomantic-tsunami/libdrizzle-redux

Repository files navigation

Description Travis Build Status Coveralls Build Status v6.x.x

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

Support Guarantees

  • Major branch development period: 6 months
  • Maintained minor versions: 1 most recent

Maintained Major Branches

Major Initial release date Supported until
v6.x.x v6.0.0: 2017-04-06 TBA - 6 months after next major release

Releases

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.

Installing Libdrizzle Redux

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 or rpm packages locally.

Please refer to the section Installing Libdrizzle Redux in the documentation for more info.

Building libdrizzle-redux

Supported compilers

Compiler Version
GNU gcc >=4.5.x
LLVM clang >=3.3
Apple LLVM clang1 >=6.1

Other Dependencies

Dependency Version
autoconf >=2.61
zlib1g-dev >=0.13.x
libtool >=2.x
libssl-dev2 >=v1.x

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.23 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

Building documentation

Documentation can be generated in several formats:

pdf  : make latexpdf
epub : make epub
html : make html

Contributing to libdrizzle-redux

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.


  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.

  2. openssl is needed if libdrizzle-redux is compiled with support for SSL connections.

  3. 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.