コンテンツへスキップ

必要なライブラリ

これは、Crystalコンパイラと標準ライブラリで使用されているサードパーティライブラリのリストです。

コアランタイム依存関係

このセクションのライブラリは、常にCrystalのstdlibランタイムによって必要とされます。標準ライブラリを使用するCrystalプログラムのビルドまたは実行には、これらのライブラリが存在している必要があります。これらの依存関係を回避できるのは、標準ライブラリを使用しない場合(--prelude=noneコンパイラオプション)のみです。

システムライブラリ

主要なコンポーネントはシステムライブラリです。選択はターゲットプラットフォームに依存し、複数サポートされています。これには通常、C標準ライブラリと、libdllibmlibpthreadlibcmt、またはlibiconvなどの追加のシステムライブラリが含まれます。これらのライブラリは、Cライブラリの一部である場合もあれば、スタンドアロンライブラリである場合もあります。ほとんどのプラットフォームでは、これらのライブラリはすべてオペレーティングシステムによって提供されます。

ライブラリ 説明 ライセンス
glibc Linuxの標準Cライブラリ LGPL
musl libc Linuxの標準Cライブラリ MIT
FreeBSD libc FreeBSDの標準Cライブラリ BSD
NetBSD libc NetBSDの標準Cライブラリ BSD
OpenBSD libc OpenBSDの標準Cライブラリ BSD
Dragonfly libc DragonflyBSDの標準Cライブラリ BSD
macOS libsystem macOSの標準Cライブラリ Apple
MSVCRT MSVCコンパイラ(Windows)の標準Cライブラリ
WASI WebAssembly System Interface Apache v2およびその他
bionic libc AndroidのCライブラリ BSDライク

その他のランタイムライブラリ

ライブラリ 説明 ライセンス
Boehm GC Boehm-Demers-Weiser保守的ガベージコレクタ。自動メモリ管理を実行します。 MITスタイル
Libevent イベント通知ライブラリ。 Fiber やPOSIXプラットフォームでのイベントループなどの並行処理機能を実装します。Windowsでは使用されません。 修正BSD
compiler-rtビルトイン コード生成に必要な低レベルルーチン(整数乗算など)の最適化された実装を提供します。これらのルーチンのいくつかは、Crystalに直接移植されています。 MIT / UIUC

オプションの標準ライブラリ依存関係

これらのライブラリは、標準ライブラリのさまざまな部分で、明示的に使用された場合のみ必要となります。

正規表現エンジン

Regex クラスのエンジン実装。PCRE2のサポートはCrystal 1.7で追加され、1.8以降はデフォルトになっています(正規表現のドキュメントを参照)。

ライブラリ 説明 ライセンス
PCRE2 Perl互換正規表現、バージョン2。 BSD
PCRE Perl互換正規表現。 BSD

大きな数

BigIntなどのBig型のインプリメンテーション。

ライブラリ 説明 ライセンス
GMP GNU多倍長精度演算ライブラリ。 LGPL v3+ / GPL v2+
MPIR GMPからフォークされた多倍長整数と有理数。Windowsで使用されます。 GPL-3.0およびLGPL-3.0

国際化変換

これは、スタンドアロンライブラリである場合もあれば、一部のプラットフォームではシステムライブラリの一部として提供される場合もあります。-Dwithout_iconvコンパイル時フラグで無効にすることができます。システムライブラリの実装よりもスタンドアロンライブラリを使用することは、-Duse_libiconvコンパイル時フラグで強制することができます。

ライブラリ 説明 ライセンス
libiconv (GNU) 国際化変換ライブラリ。 LGPL-3.0

TLS

OpenSSL APIのためのTLSプロトコル実装と汎用暗号化ルーチン。-Dwithout_openssl コンパイル時フラグで無効にすることができます。

OpenSSLLibreSSLの両方がサポートされており、バインディングはホストシステムで使用可能なライブラリとAPIバージョンを自動的に検出します。

ライブラリ 説明 ライセンス
OpenSSL SSLおよびTLSプロトコルの実装 Apache v2 (3.0+), OpenSSL / SSLeay (1.x)
LibreSSL SSLおよびTLSプロトコルの実装。2014年にOpenSSLからフォークされました。 ISC / OpenSSL / SSLeay

その他のstdlibライブラリ

ライブラリ 説明 ライセンス
LibXML2 Gnomeプロジェクトのために開発されたXMLパーサー。XMLモジュールを実装します。 MIT
LibYAML YAMLパーサーおよびエミッターライブラリ。YAMLモジュールを実装します。 MIT
zlib 非可逆データ圧縮ライブラリ。 Compress モジュールを実装しています。 コンパイル時のフラグ-Dwithout_zlibで無効化できます。 zlib
LLVM ターゲット非依存のコードジェネレータとオプティマイザ。 LLVM APIを実装しています。 Apache v2 ライセンス (LLVM例外付き)

コンパイラ依存関係

コアランタイム依存関係に加えて、これらのライブラリはCrystalコンパイラのビルドに必要なものです。

ライブラリ 説明 ライセンス
PCRE2 上記を参照。
LLVM 上記を参照。 Apache v2 ライセンス (LLVM例外付き)
libffi 外部関数インターフェース。インタープリタでのバイナリインターフェースの実装に使用されます。コンパイル時のフラグ-Dwithout_interpreterで無効化できます。 MIT