AnyEvent::MySQL::Client

AnyEvent::MySQL::Client

[1] AnyEvent::MySQL::Client は、 AnyEvent / Promise 環境用の MySQLプロトコルクライアントPerlモジュールです。

[3] 従来 PerlアプリケーションMySQL サーバーアクセスには DBIDBD::mysql の組み合わせが事実上の標準として使われてきました。 しかしこの組み合わせでは限定的な非同期処理機能はあるとはいえ、 AnyEvent非ブロッキングI/O前提の環境に適した実装にはなっていません。 AnyEvent::DBI のような実装もあるものの、 非効率的で不完全な実装にとどまっていました。

[4] また、 DBD::mysqlXSモジュールMySQL クライアントライブラリーを直接利用するため、 公式クライアントをそのまま使えるという相互運用性上の大きなメリットがあるものの、 可搬性が大きな課題となっています。特に今般 MySQL 8 以外の版 (MariaDB や古い MySQL) への対応が打ち切られたことで、 これまで以上に制約が厳しくなってしまいました。

[5] 対して AnyEvent::MySQL::ClientAnyEventI/O ライブラリーを活用して MySQLプロトコルクライアント機能を独自実装しています。 AnyEvent::MySQL::Client 自体は pure Perl です。

[6] AnyEvent::MySQL::ClientMySQLプロトコルの 「薄いラッパー」 として設計されています。 このPerlモジュールを基礎として、任意のデータベースアクセスパラダイムの API を提供するPerlモジュールを制作できます。

[7] 従って一般の Perlアプリケーションでは AnyEvent::MySQL::ClientAPI をそのまま使って開発するのは得策ではないかもしれません。

[8] 現在、 AnyEvent::MySQL::Client を使ったデータベースアクセスライブラリーとしては、 Dongry があります。