私の Homebrew カタログ (4)

2020-07-15 (updated: 2021-05-15)  #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 に採用されています.

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