私のHomebrewカタログ (4)

2020-07-15 (updated: 2025-12-09) #macOS

前回の続き。今回は頭文字がLのものばかりです。もっというとlibナンチャラ という名前のフォーミュラばかりなので、ほとんどがライブラリということになります。ほとんどが直接使うことのないものなので、よくわからないことだらけです。ほぼ「ググればわかる」ことしか書いていないですが、もはや自分用のメモ程度のつもりで書いています。

latexml

LaTeXMLはLaTeXドキュメントをXMLやHTMLに変換するためのツールです。数式部分は (Content) MathMLに変換されます。Perl製でかなり気合の入った作りになっており、ある程度TeX言語をTeXエンジンのように処理することができます。ただし、もちろんTeXエンジンそのものを搭載しているわけではないので、一部の処理はアドホックであったり、完全にはTeX互換でなかったりします。pTeX系列には厳密には対応していないので、日本語LaTeX文書に対しては騙し騙し利用することになります。pTeX対応のためにどうしても場当たり的な対処が必要で、筆者が機能追加の提案 (issue #1120)をしたこともあります。

ところで、インストール時の注意点ですが、LaTeXMLはHomebrewでは素直には入りません。cpanmを使って依存Perlモジュールをさらに個別導入するなどの追加措置が必要です。手許では、そのPerlモジュールのすんなりとは入らず、ビルドに失敗するものがありました。Makefileを少し改変してlibxml2のパス位置を手動で設定した記憶があります。最新情報はLaTeXML開発元のWikiを参照してください。

leptonica

教育目的で開発された画像処理・画像解析ライブラリのようです。オープンソースのOCR実装Tesseractが依存しているために導入する人が多いようです。

libde265

H.265ビデオコーデックのオープンソース実装ようです。そもそも「コーデック」というのはcode/decodeが由来なのですね。Imagemagickが利用しているようです。

libev

高機能なイベントループライブラリのようです。次に出てくるlibeventに対して後発だと公式サイトに説明がありました。curlやwiresharkなどネットワーク系のソフトウェアが採用しています。

libevent

同じくイベントループライブラリで、名だたる多くのプロジェクトに採用されています。Homebrewでインストールしているものではありませんが、ChromiumやTorでも使われているようです。

libewf

Expert Witness Compression Format (EWF) というフォレンジック用の画像形式を取り扱うライブラリのようです。手許ではsleuthkitというフォレンジックツールが利用していました。EWFについては同ライブラリのリポジトリ内にドキュメントが含まれています。

libffi

FFIのためのライブラリです。FFIというのはForeign Function Interfaceの略語で、あるプログラミング言語から別の言語の機能(関数)を呼び出して使用することを言います。このライブラリは、様々な状況でその呼び出しをサポートするための低レベルAPIを提供するもののようです。PythonやRubyの公式実装をはじめ、幅広く利用されているもののようです。

libgcrypt

GnuPGのコードをベースとする各種の暗号アルゴリズム実装ライブラリのようです。具体的に対応しているアルゴリズムは対称暗号・ハッシュ関数・公開鍵暗号など多岐にわたり、その一覧は公式サイトに掲載されています。

libgpg-error

上記libgcryptはGnuPGとは独立にライブラリとして利用できるものですが、そのエラーハンドリングにはこのlibgpg-errorを利用する必要があるようです。

libheif

HEIFというのは比較的最近になってAppleがiOSで標準形式として採用したことにより有名になった画像圧縮形式です。JPEG形式と比べて約半分のサイズで同等の画質の画像を保存できるとされているそうです。先述のlibde265と同じ開発元により提供されています。

libiconv

変換 (conversion) ライブラリと言われても漠然としていますが、ここでは「文字コード変換」のことを指しているようです。現代では、多くの場面では文字エンコーディングにはUnicodeが使われるのが一般的になってきましたが、歴史的事情により、そうでないものも色々とあります。このGNUなライブラリは、かなり多様なエンコード方式に対応した変換ライブラリのようです。日本語についてもEUC-JP, Shift_JIS, CP932, ISO-2022-JPなどよく目にする(あるいはかつてよく目にした)形式が軒並みサポートされています。

libidn

国際化されたドメイン名をエンコード・デコードするためのライブラリです。伝統的なドメイン名はASCII範囲の文字のみが用いられますが、Unicode範囲に拡張されたものが国際化ドメインです。近年実際に見られるようになってきた「日本語ドメイン」などは、その具体的な利用事例ということになるのでしょう。このライブラリは具体的にはStringgrepと呼ばれる「国際化文字列の前処理」規格 (RFC 3454)、Punycodeという国際化ドメインで用いられる文字符号化方式 (RFC 3492)、およびIDNA 2003という「アプリケーションにおけるドメイン名の国際化」規格の最初のバージョン (RFC 3490) を実装したものです。

libidn2

その名の通りlibidnの後継で、より新しい規格であるIDNA 2008を実装しているようです。

liblbfgs

CRFsuiteの実装に用いられている、同開発者によるL-BFGS実装です。BFGS法というのは山登り法の一種で、非制限非線形最適化問題を解くアルゴリズムだそうです。

libmaxminddb

MaxMind DBという形式のデータベースファイルを読むためのCライブラリのようです。MaxMind DBというのはIPアドレスデータベースに最適化されたMaxMind社独自のバイナリ形式のようです。同社はGeoIP2データベースを提供しており、この独自形式およびライブラリもこのデータベースのために開発されたもののようです。

Metalink XMLというものをパースするライブラリだそうです。Metalinkというのはダウンロードすべきファイルの場所を列挙するための仕様のようで、具体的にはユーザの設定(ロケールなど?)に適したファイルの情報や、ミラーURIの一覧、ファイル検証用のハッシュ値といった情報を記述するもののようです。curlで利用されています。

libmpc

高精度複素数の算術処理を行うGNU傘下のプロジェクトです。これを利用すると、float型やdouble型を超えて(マシンリソースの許す範囲で)任意のビット数をもつ変数を定義できるようです。また丸め処理な豊富なことも特徴として上げられています。このライブラリはgccで利用されています。

libomp

LLVMの配下にあるプロジェクトで、OpenMPプログラムを作成するために必要な機能を提供するライブラリのようです。OpenMPというのは並列計算のためのAPIのひとつで、現在広く用いられています。MPIと比較すると一長一短のようです。

libpng

PNG形式の画像を扱うためのライブラリです。どうやら規格者による公式リファレンス実装のようです。PNG仕様のほとんどすべてをサポートしており、長年の使用実績もあることから、様々なプロジェクトで採用されています。

libpq

関係データベースPostgreSQLのためのAPIを提供するライブラリです。PostgreSQL本家に同梱されているもののようです。

libsmi

SMI MIB情報にアクセスするためのライブラリです。SMI MIB情報というのは、通信ネットワーク内のデバイスを管理するための各種情報のことのようです。

libsodium

PHP 7.2から導入された、比較的新しい暗号処理ライブラリです。クロスプラットフォームであること、ライセンスが緩いこと、開発が活発であること、あたりが特徴として挙げられるようです。

libspiro

美しい曲線を簡単に描くためのライブラリだそうです。FontForgeのために書かれたものだと思われます。コンピュータ上の曲線と言えばベジェ曲線がまず思い浮かびますが、このライブラリではクロソイド曲線というものを採用しているようです。

libssh

SSHv1/v2に準拠したクライアント・サーバのオープンソース実装です。OpenSSHと比べるとマイナーなイメージがありますが、GitHub社などが利用しているようです。

libssh2

名前からするとlibsshの新バージョンのようですが、まったくの別プロジェクトだそうです。libsshと異なり、こちらはクライアント側のみの実装のようです。curlに採用されています。

今回でやっと半分ぐらい終わりました。次回から後半戦です。