A lightweight, high-performance C client library for MySQL-compatible databases, designed for easy embedding.
Trilogy is a C client library for MySQL-compatible database servers, designed for high performance and easy embedding into applications. It provides a decoupled protocol API and supports both text and binary protocols, focusing on the most commonly used MySQL features. The library is built with minimal dependencies and dynamic allocation, making it suitable for resource-constrained environments.
Developers building C/C++ applications that require efficient, embeddable MySQL connectivity, or those creating bindings for other languages who need a robust, low-level foundation.
Trilogy offers a unique combination of performance, simplicity, and embeddability, with IO-decoupled design allowing custom integration. Its minimal dependencies and production-proven stability (used on GitHub.com) make it a reliable choice for demanding environments.
Trilogy is a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Requires only POSIX, C standard library, and OpenSSL, reducing deployment complexity and making it easy to embed into resource-constrained environments.
Low-level protocol API is separated from IO, allowing integration with custom event loops and enabling non-blocking operations as detailed in the protocol.h header.
Used in production on github.com, indicating reliability and real-world testing in high-demand scenarios.
Offers blocking, non-blocking, and low-level APIs to accommodate different programming models, providing flexibility as described in the README.
Only supports the most frequently used parts of the MySQL text protocol, missing less common commands which may be needed for advanced database operations.
Explicitly lacks support for LOAD DATA INFILE on local files, a limitation for data import and bulk loading tasks.
The trilogy_escape function assumes ASCII-compatible connection encoding, which can lead to issues with non-ASCII or complex character sets.