跳至內容

Crystal 平台支援

Crystal 編譯器可在許多平台上運行並編譯到許多平台,但並非所有平台都獲得同等程度的支援。Crystal 的支援等級分為三個級別,每個級別都有不同的保證。

平台以其「目標三元組」來識別,這是一個字串,用於告知編譯器應該產生什麼類型的輸出。下表中的欄位表示相應的組件是否在指定的平台上運作。


第一級

第一級平台可以被認為是「保證運作」的平台。具體來說,它們將滿足以下每個要求

  • 為該平台提供官方二進位發行版本。
  • 設定自動化測試以運行該平台的測試。
  • 提供有關如何使用以及如何建置該平台的說明文件。

僅完全支援維護中的作業系統版本。不保證過時的版本能夠運作,並降至第二級

目標 描述 支援版本 註解
aarch64-darwin Aarch64 macOS
(Apple Silicon)
11+ (僅在 14 上測試) 測試
建置
x86_64-darwin x64 macOS
(Intel)
11+
(僅在 13 上測試;預期可在 10.7+ 上運作)
 測試
 建置
x86_64-linux-gnu x64 Linux 核心 4.14+,GNU libc 2.26+
(預期可在核心 2.6.18+ 上運作)
 測試
 建置
x86_64-linux-musl x64 Linux 核心 4.14+,MUSL libc 1.2+
(預期可在核心 2.6.18+ 上運作)
 測試
 建置

第二級

第二級平台可以被認為是「預期運作」的平台。

第一級的要求可能部分滿足,但由於某些原因而無法提供可靠的保證。詳細資訊在註解欄中說明。

目標 描述 支援版本 註解
aarch64-linux-gnu Aarch64 Linux GNU libc 2.26+ 測試
建置
aarch64-linux-musl Aarch64 Linux MUSL libc 1.2+  測試
 建置
arm-linux-gnueabihf Aarch32 Linux
(硬浮點)
GNU libc 2.26+  測試
 建置
i386-linux-gnu x86 Linux 核心 4.14+,GNU libc 2.26+
(預期可在核心 2.6.18+ 上運作)
 測試
 建置
i386-linux-musl x86 Linux 核心 4.14+,MUSL libc 1.2+
(預期可在核心 2.6.18+ 上運作)
 測試
 建置
x86_64-openbsd x64 OpenBSD 6+  測試
 建置
x86_64-freebsd x64 FreeBSD 12+  測試
 建置

第三級

第三級平台可以被認為是「部分運作」的平台。

Crystal 程式碼庫支援以下平台,但有一些主要的限制。最常見的情況是,標準函式庫的某些部分無法完全支援。

目標 描述 支援版本 註解
x86_64-windows-msvc x64 Windows (MSVC) 7+  測試
 建置
aarch64-windows-msvc ARM64 Windows (MSVC) 11+  測試
 建置
aarch64-linux-android aarch64 Android Bionic C 執行時期,API 等級 24+  測試
 建置
x86_64-unknown-dragonfly x64 DragonFlyBSD  測試
 建置
x86_64-unknown-netbsd x64 NetBSD  測試
 建置
wasm32-unknown-wasi WebAssembly (WASI libc) Wasmtime 2+  測試
x86_64-solaris Solaris/illumos 測試
建置

編譯器支援

編譯器可以針對這些平台,但沒有標準函式庫的支援 (也就是說,必須使用 --prelude=empty 進行編譯)。

目標 描述 支援版本 註解
avr-unknown-unknown AVR (Atmel) CPU 架構 (Arduino)
此目標需要宣告 CPU 模型 (例如 --mcpu=atmega328)

圖例

  • 表示沒有自動化測試或建置可用
  • 表示有自動化測試或建置可用
  • 表示有自動化測試可用,但實作不完整

注意

非常感謝 Rust 團隊整理出如此清晰的關於 Rust 平台支援的文件,我們以此作為我們的靈感來源。