A stand-alone Swift wrapper around the MySQL client library for accessing MySQL servers.
Perfect-MySQL is a Swift wrapper around the MySQL client library that enables Swift applications to access MySQL database servers. It provides a native Swift interface for database operations, allowing developers to integrate MySQL into their Swift projects without relying on external dependencies. It is part of the Perfect project but functions independently.
Swift developers building server-side or cross-platform applications that require MySQL database connectivity, particularly those using the Swift Package Manager.
Developers choose Perfect-MySQL for its stand-alone design, seamless integration with Swift Package Manager, and cross-platform support, offering a pure Swift solution for MySQL access without the overhead of additional frameworks.
A stand-alone Swift wrapper around the MySQL client library, enabling access to MySQL servers.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
It operates independently without requiring PerfectLib or other components, as stated in the README: 'It was written to be stand-alone and so does not require PerfectLib or any other components.'
Seamlessly integrates into SPM projects with clear Package.swift instructions, evidenced by the example: '.package(url:"https://github.com/PerfectlySoft/Perfect-MySQL.git", from: "3.0.0")'.
Supports both macOS via Homebrew MySQL and Linux via libmysqlclient-dev, with specific build notes for each platform in the README.
Provides a native Swift interface for low-level database operations, enabling direct connectivity to MySQL servers without abstraction layers.
Requires editing the mysqlclient.pc file and installing Homebrew MySQL, which the README admits is necessary but error-prone: 'you will need to edit the mysqlclient.pc file... Remove the occurrance of "-fno-omit-frame-pointer".'
Documentation is hosted externally on perfect.org, which may not be as updated or accessible as inline resources, and the README only links to it without providing detailed examples.
On Linux, it requires MySQL client version 5.6 or greater and is incompatible with Ubuntu 14, limiting deployment flexibility as noted: 'Ubuntu 14 defaults to including a version of MySQL client which will not compile.'
As a low-level wrapper, it lacks built-in features like connection pooling or ORM capabilities, forcing developers to implement these manually compared to more comprehensive libraries.