Twitter4C v3.0となる「Twitter4C with OpenSSL」を公開しました。今回のアップデートではその名の通りSSLライブラリをCyaSSLからOpenSSLに変更したため、別リポジトリでの公開としました。

元々、Twitter4Cは(現状メモリを多く使っていることを差し置いて)ネットワークをサポートした組み込みシステムやLinuxなどを想定し、SSLライブラリ(CyaSSL)もパッケージ化した状態でmakeすれば一応動く状態で配布していました。現状でも想定した環境(x86 Linux)では動作するものの、Linuxでは64bit環境でビルドが通らないといった問題がありました。 Twitter4Cがよく使用される環境としてはLinux系が多く、最初に想定していた組み込み用途よりも導入ケースが多く見られます。また、x64でビルドできないという報告は昨年の時点で海外のユーザから連絡を受けました。

Twitter投稿に関する関数群はx86でもx64でも動作します。しかしながらパッケージしたSSLライブラリによってこの動作が左右されてしまうため、まずはこの問題をクリアする必要がありました。このために最初の「オールインワン」な発想を捨て、出来る限りシンプルな状態でソースを提供し、ユーザ側でSSLライブラリを選択してもらう形式をとることにしました。

CyaSSLはOpenSSL互換の関数群も提供していたため、移植自体はどちらを使用するにしても比較的簡単に行うことができます。実際、session.cの差分を取ってもらうと分かりますが、send/recvがごっそり無くなっているだけで、あとは殆ど同じです。

OpenSSLライブラリは各種Linux環境において最適な形で提供されるため、通常使用の範囲ではこの状態でどの環境でも使用できます。また、組み込み向けに使用する場合はCyaSSLをインストールし、ヘッダを変更するだけで使用できるようになります。

最初のバージョンの公開から約2年が経過し、環境もニーズもだいぶ変化してきたように思います。 Twitter4C自体は数々のソースコードを外部からインポートしてそれをラップした状態での公開であり、つぎはぎだらけでまだまだ無駄が多い状態です。しかし、Twitterとの通信の仕組みを分かりやすく、使いやすい状態で公開していることを売りにしています。

以前から言っていてなかなか開発できずにいますが、よりメモリ使用量を削減して組み込み向けに特化したバージョンの開発も進めていこうと思っています。特にTwitterAPIへのアクセスにSSL接続が必須になるため、今後このようなライブラリがより求められるようになると考えています。

今後ともTwitter4Cをよろしくお願い致します。