Crystal 1.22.0 chính thức phát hành: aarch64-linux lên Tier 1, DWARF nhanh hơn và nhiều thay đổi quan trọng
Crystal 1.22.0 vừa ra mắt với 251 thay đổi từ 33 nhà đóng góp, bao gồm việc aarch64-linux được nâng lên Tier 1, DWARF parser được viết lại giúp tăng tốc độ, hỗ trợ LLVM 23 & 24, và hàng loạt cải thiện về HTTP, event loop cùng Kernel TLS.

Crystal 1.22.0 chính thức phát hành: aarch64-linux lên Tier 1, DWARF nhanh hơn và nhiều thay đổi quan trọng
Crystal vừa phát hành phiên bản 1.22.0, đánh dấu bước tiến đáng kể về hiệu năng và khả năng hỗ trợ nền tảng. Bản cập nhật này gồm 251 thay đổi do 33 nhà đóng góp thực hiện, trong đó nổi bật là việc nâng aarch64-linux lên Tier 1 và viết lại hoàn toàn bộ phân tích DWARF.
Tác giả đóng góp cho Crystal
Tổng quan về bản phát hành
Crystal 1.22.0 là phiên bản mới nhất của ngôn ngữ lập trình mang phong cách Ruby nhưng biên dịch ra mã máy native. Các gói dựng sẵn (pre-built package) đã có mặt trên GitHub Releases và các kênh phân phối chính thức; người dùng có thể xem hướng dẫn cài đặt tại crystal-lang.org/install.
Kể từ phiên bản 1.21.1, cộng đồng đã đóng góp 251 thay đổi từ 33 lập trình viên, cho thấy tốc độ phát triển đều đặn của dự án.
Thay đổi đáng chú ý nhất
Thoát khi lỗi pipe
Đây là thay đổi mang tính breaking change: tiến trình Crystal sẽ thoát ngay lập tức khi ghi vào STDOUT hoặc STDERR gặp lỗi EPIPE. Hành vi này mô phỏng sát với cơ chế mặc định của tín hiệu SIGPIPE trên hệ điều hành.
Trước đây, khi ghi thất bại, Crystal sẽ ném ra IO::Error, thường in thông báo lỗi rồi mới thoát. Thông báo lỗi này nay đã được loại bỏ. Nếu cần giữ hành vi cũ, lập trình viên có thể tắt bằng STDOUT.exit_on_broken_pipe = false.
Hằng số có khai báo kiểu
Từ 1.22, hằng số có thể được khai báo kèm kiểu dữ liệu, hoạt động đúng như kỳ vọng khi kết hợp hằng số với khai báo kiểu:
module Foo
BAR : Int32 = 1
BAZ : String = ""
QUX : Int64 = 123 # tự động ép kiểu 123 sang Int64
end
aarch64-linux chính thức lên Tier 1
Hai target aarch64-linux-gnu và aarch64-linux-musl đã được nâng từ Tier 2 lên Tier 1. Yếu tố còn thiếu duy nhất trước đây là bản dựng chính thức, và vấn đề này đã được giải quyết từ phiên bản 1.19. Đây là tin vui cho các nhà phát triển triển khai ứng dụng trên máy chủ ARM — xu hướng ngày càng phổ biến nhờ các dịch vụ cloud dùng chip ARM tiết kiệm điện.
Loại bỏ Process.fork
Process.fork vốn đã bị đánh dấu lỗi thời từ trước phiên bản 1.0, và giờ đây chính thức bị xóa khỏi ngôn ngữ. Các dự án còn sử dụng API này cần chuyển sang giải pháp thay thế trước khi nâng cấp.
Cải thiện trình biên dịch và runtime
Viết lại DWARF parser
Bộ phân tích DWARF — định dạng dữ liệu gỡ lỗi quan trọng — đã được viết lại hoàn toàn nhằm tăng hiệu năng và giảm mức tiêu thụ bộ nhớ. Parser mới quét các section theo nhu cầu và xây dựng bảng chỉ mục hiệu quả một lần, giúp tra cứu nhanh vượt trội. Các dòng backtrace đã giải mã được lưu trong bộ nhớ đệm LRU, đồng thời bổ sung hỗ trợ các tính năng DWARF 5 như DW_FORM_addrx và DW_FORM_strx.
Event loop native trên mọi target
Tất cả các target giờ đây hỗ trợ và mặc định dùng event loop native dựa trực tiếp trên system selector. Cụ thể, epoll đã được bật trên Solaris, còn kqueue được bật trên toàn bộ các target BSD còn lại. Thư viện libevent vẫn tồn tại như phương án dự phòng nhưng phải bật thủ công và dự kiến sẽ bị loại bỏ trong phiên bản tới.
Hỗ trợ Kernel TLS và LLVM mới
Crystal 1.22 hỗ trợ Kernel TLS trong OpenSSL bindings theo mặc định, giúp tăng hiệu năng mã hóa TLS ở tầng nhân hệ điều hành. Bản phát hành cũng bổ sung hỗ trợ LLVM 23.1 và 24.0, cùng hai hằng số mới Crystal::ALL_FLAGS và Crystal::USER_FLAGS cho phép truy cập cờ biên dịch lúc runtime.
Crystal hỗ trợ đa nền tảng
Những cải thiện về HTTP
Module HTTP nhận được rất nhiều bản vá và tối ưu trong lần phát hành này:
#remote_addressvà#local_addressđược chuyển từHTTP::RequestsangHTTP::Context- Thêm
HTTP::Headers#merge - Serialize
IO::Memorytrong HTTP body kèm headerContent-Length - Từ chối các header
Transfer-Encoding,Content-Encodingvà trailer HTTP không hợp lệ - Sửa lỗi
Content-Encoding: deflate - Đóng
HTTP::Clientkhi gặpIO::Errortrong quá trình gửi request
Đáng chú ý, giá trị trả về của HTTP::Request#body= và #content_length= đã thay đổi — đây là thay đổi breaking có thể ảnh hưởng tới code hiện hữu. Nhiều lỗ hổng tiềm ẩn trong việc xác thực header và WebSocket handler cũng được khắc phục, góp phần tăng độ an toàn cho ứng dụng web viết bằng Crystal.
Thay đổi khác và các API bị loại bỏ
Một số cải thiện tiện ích khác gồm:
File.exists?vàFile::Info.readable?,.writable?,.executable?nhận tham sốfollow_symlinks: false- Thêm
Char::Reader.new(Bytes) - Thêm
Time::Span#to_nanoseconds - Thêm
GC.syscall(&) - Sửa lỗi backtrace khi liên kết với
-static-pietrên musl-libc - Macro mới giúp xử lý văn bản lúc biên dịch:
StringLiteral#bytesize,NumberLiteral#chr, vàRangeLiteral#eachhỗ trợCharLiteral
Các API bị đánh dấu lỗi thời trong bản này gồm biến instance và biến class viết hoa, HTTP::Request#local_address/#remote_address, cùng LLVM::Type#size và #alignment.
Đây là bản phát hành đầu tiên có bản dựng cho target
aarch64-windows-msvc, mở rộng thêm khả năng chạy Crystal trên nền tảng Windows ARM.
Chính sách tương thích và lời cảm ơn
Crystal đã thiết lập chính sách tương thích tiến (forward compatibility) theo RFC 30: để xây dựng Crystal 1.22, cần trình biên dịch stage-0 phiên bản 1.14 trở lên.
Nhóm phát triển gửi lời cảm ơn tới 84codes cùng các nhà tài trợ đã hỗ trợ dự án. Để duy trì và tăng tốc độ phát triển, các khoản quyên góp và bảo trợ vẫn rất cần thiết, có thể thực hiện qua OpenCollective hoặc liên hệ trực tiếp với đội ngũ để trở thành nhà tài trợ.
Với người dùng Việt Nam đang phát triển ứng dụng hiệu năng cao trên máy chủ ARM hoặc cần công cụ gỡ lỗi mạnh mẽ hơn, Crystal 1.22.0 là bản nâng cấp đáng cân nhắc — chỉ cần lưu ý các thay đổi breaking liên quan tới Process.fork, xử lý lỗi pipe và giá trị trả về của một số API HTTP.
Bài viết liên quan

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Helion phát triển chip bán dẫn mới, hứa hẹn nhân đôi sản lượng điện từ lò phản ứng nhiệt hạch
22 tháng 10, 2026