<img alt="MySQL++ rocks" width="300" height="142" style="float:right; margin-left:20px" />

MySQL++ is a C++ wrapper for the and C APIs. It is built on the same principles as the Standard C++ Library to make dealing with the database as easy as dealing with `std` containers. MySQL++ lets you avoid the most repetitive sorts of SQL by providing native C++ interfaces for these common tasks.

If you have questions about this project and can’t find an answer in the [documentation](/wiki?name=Documentation) or the [old mailing list ask on [the web forum](/forum). We also have a [ticket system](/tktnew), but it's best to discuss such things first before filing a ticket.


## <a name="stable"></a>Latest Stable Version

Before upgrading an existing version of MySQL++, please scan through the [change first. If you’re coming from a much older version, better read through the “[Incompatible Library chapter in the [user instead.


### <a name="binary"></a>Binary Packages

<img alt="MySQL++ packaging status" style="float:right; margin-left:20px" />

MySQL++ has been picked up by many OSes and packaging systems, listed in the table at right. Since these packages are properly integrated into their host systems, we do not offer competing binary packages here.

If you want something different in your binary package than you get in the stock package for your OS, you should build it from [source](#source) on the target OS, else you are likely to have [problems](/wiki?name=FAQ#segfaults).


### <a name="source"></a>Source Code

The MySQL++ source code is available in several forms:

*   **Release Tarball:** [mysql++-3.3.0.tar.gz](releases/mysql++-3.3.0.tar.gz) (4.4 MiB, 2021.04.28) — If you aren’t sure which file to download, download this.

*  **Release SRPM:** [mysql++-3.3.0-1.el8.src.rpm](releases/mysql++-3.3.0-1.el8.src.rpm) (3.9 MiB, 2021.04.28) — For those that need to build their own binary RPMs:

        $ rpmbuild --rebuild

    The resulting `mysql++`, `mysql++-devel` and `mysql++-manuals` RPMs should then be found in if you did it on a 64-bit x86 based Linux box.

*  **Tip-of-trunk Tarball:** — For those who need the latest bleeding-edge version without bothering with Fossil. This is "stable" in the sense that our repository trunk almost always compiles and runs; experimental work is done on branches to avoid destabilizing trunk.

*   **Fossil Repository:** You may [clone our Fossil to get the current work on MySQL++ with [abridged history](/wiki?name=Abridged+Version+History) going back to the project's founding plus the wiki contents, our ticket tracker contents, forum posts, and more. The repository is [well-tagged](/taglist), so you can compare versions, roll back to old versions, etc. This is the best option for those who want to participate in the development of MySQL++.

*   **GitHub Repository:** This Fossil repository is [mirrored hourly, This is intended primarily as a read-only convenience to those heavily into Git-based tooling. If you are intending to fork or patch the code, there are [better alternatives than sending us a via that channel.


## <a name="oldver"></a>Old Versions

If you need a particular older version of MySQL++, you can either grab the raw source code for it from the [Fossil tag list page](/taglist) or you can [browse](/releases) the old version archive.

Those still needing MySQL++ 2.x might be interested in the branch, which makes minimal changes to version 2.3.2 — the last release in the 2.x line — to allow it to build on modern systems. Essentially, it contains build fixes analogous to those we've done in the 3.x line without backporting any actual features or behavior changes from 3.x. This branch is unlikely to ever be released, but it is intended to be "stable" at all times.


## <a name="docs"></a>Documentation

The [online user and reference are also included in the source code tarball above.


## <a name="faq"></a>Frequently-Asked Questions

The [FAQ list](/wiki?name=FAQ) answers many commonly-asked questions about MySQL++.


## <a name="contrib"></a>Contributing to the Effort

The easiest thing to do if you want to help out with the MySQL++ development effort is to participate on the [web forum](/forum). The library's primary developer does not mind at all if someone else answers a question before he can get to it. It’s also frequently helpful to have different voices contributing to discussions about the library’s future.

If you want to participate in the coding effort, the MySQL++ development project is hosted by a distributed version control similar to Git but much easier to use. See [the contribution for instructions on working with Fossil and the MySQL++ source code.

If you're looking for projects to tackle, see [the Wishlist](/features).

If you just want to keep up on the in-progress developments, see [the project timeline](/timeline), which is also available in [RSS form](/timeline.rss) for those who want MySQL++ changes to appear in their feed reader. You can also [subscribe to email notifications](/subscribe) for various events: check-ins, wiki edits, forum postings, etc.