- Notifications
You must be signed in to change notification settings - Fork78
Trilogy is a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding.
License
trilogy-libraries/trilogy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Trilogy is a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding.
It's currently in production use on github.com.
Supports the most frequently used parts of the text protocol
- Handshake
- Password authentication
- Query, ping, and quit commands
Support prepared statements (binary protocol)
Low-level protocol API completely decoupled from IO
Non-blocking client API wrapping the protocol API
Blocking client API wrapping the non-blocking API
No dependencies outside of POSIX, the C standard library & OpenSSL
Minimal dynamic allocation
MIT licensed
Only supports the parts of the text protocol that are in common use.
No support for
LOAD DATA INFILE
on local filestrilogy_escape
assumes an ASCII-compatible connection encoding
make
- that's it. This will build a staticlibtrilogy.a
Trilogy should build out of the box on most UNIX systems which have OpenSSL installed.
Documentation for Trilogy's various APIs can be found in these header files:
blocking.h
The blocking client API. These are simply a set of convenient wrapper functions around the non-blocking client API in
client.h
client.h
The non-blocking client API. Every command is split into a
_send
and_recv
function allowing callers to wait for IO readiness externally to Trilogybuilder.h
MySQL-compatible packet builder API
charset.h
Character set and encoding tables
error.h
Error table. Every Trilogy function returning an
int
uses the error codes defined herepacket_parser.h
Streaming packet frame parser
protocol.h
Low-level protocol API. Provides IO-decoupled functions to parse and build packets
reader.h
Bounds-checked packet reader API
We maintain aRuby binding in this repository. This is currently stable and production-ready.
Trilogy is released under theMIT license.
About
Trilogy is a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding.
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.