Quay lại
Kiến trúc Kỹ thuật01/05/2026

Tại sao VNKey lại sử dụng Rust thay vì C++?

Khám phá kiến trúc lõi của VNKey, cách chúng tôi quản lý bộ nhớ an toàn và đạt được độ trễ gần như bằng 0 (0ms) trong quá trình Hook bàn phím Windows.

Phát triển một bộ gõ tiếng Việt ở tầng hệ thống yêu cầu hiệu năng tối đa và khả năng tương tác trực tiếp với API của hệ điều hành. Trong nhiều thập kỷ qua, C/C++ luôn là sự lựa chọn duy nhất cho bài toán này (ví dụ: Unikey, EVKey). Tuy nhiên, với VNKey, chúng tôi đã quyết định chọn Rust làm ngôn ngữ phát triển Core Engine. Dưới đây là lý do tại sao.

1. Vấn đề của C++: Memory Leaks và Crashes

C++ cung cấp cho lập trình viên toàn quyền kiểm soát bộ nhớ. Tuy nhiên, đi kèm với đó là rủi ro khổng lồ về bảo mật và độ ổn định. Một lỗi nhỏ như Null Pointer Dereference hay Buffer Overflow trong C++ khi tương tác với hàm `SetWindowsHookEx` của Windows API có thể khiến toàn bộ hệ thống bị treo cứng (Blue Screen of Death) hoặc làm Crash các ứng dụng đang chạy.

2. Sự an toàn tuyệt đối của Rust

Rust mang lại hiệu năng tương đương C/C++ (chạy trực tiếp trên mã máy, không có Garbage Collector), nhưng lại sở hữu một hệ thống kiểm tra tại thời điểm biên dịch (Compile-time) thông minh thông qua khái niệm Ownership và Borrowing.

3. Hiệu năng: 0ms Latency

Nhờ thiết kế zero-cost abstractions, mã Rust của VNKey có khả năng xử lý hàng ngàn sự kiện phím mỗi giây mà không tạo ra bất kỳ độ trễ nào. Khi bạn gõ phím, tín hiệu sẽ chạy trực tiếp xuống DLL lõi của VNKey, phân tích logic Telex/VNI trong vòng chưa tới 1 phần triệu giây (microseconds) và trả về kết quả cho Windows ngay tức thì.

Đó là lý do bạn sẽ cảm thấy thao tác gõ trên VNKey "mượt" và "nảy" hơn đáng kể.

Tổng kết

Bằng việc chọn Rust, VNKey không chỉ là bộ gõ tiếng Việt có tốc độ nhanh nhất, mà còn sở hữu lõi kiến trúc an toàn nhất. Bạn sẽ không bao giờ phải lo lắng về việc bộ gõ làm máy tính chạy chậm đi, ngốn RAM, hay đột nhiên bị tắt ngang giữa chừng.

Trải nghiệm bộ gõ tốt nhất ngay hôm nay

Đăng ký bản Beta