跳至内容

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 平台支持文档,我们用它作为我们文档的灵感来源。