★ Bộ gõ tiếng Việt · mã nguồn mở

Gõ tiếng Việt,
mượt như ý.

Telex, Simple Telex, VNI và VIQR trên một lõi Rust nhỏ, thuần logic. Gõ thử bằng WASM trong trình duyệt, hoặc gọi API Python để tích hợp vào công cụ của bạn.

  • 4 kiểu gõ
  • 16 bảng mã
  • 0 phụ thuộc runtime
  • WASM + C ABI
Gõ thử Telex
Phím thô: — sẵn sàng
Tùy chọn nâng cao
Thử nhanh
Vì sao ViFastKey

Đủ thông minh để quên đi.
Đủ nhỏ để chạy mọi nơi.

Engine chỉ giữ chuỗi phím thô của từ hiện tại rồi dựng lại từ đầu. Nhờ vậy dấu luôn đúng vị trí, kể cả khi gõ dấu trước hay sau.

Telex · Simple Telex · VNI · VIQR

Đổi kiểu gõ tức thì. Hỗ trợ Quick Telex, w → ư, phím [ ] và kiểu đặt dấu cũ/mới.

Khôi phục tiếng Anh

data, boss, server không bị bẻ dấu. Từ vừa là tiếng Anh vừa là tiếng Việt như this vẫn ưu tiên tiếng Việt.

Macro & viết hoa

ko → không, vn → Việt Nam. Giữ đúng kiểu hoa/thường và tự viết hoa đầu câu nếu bật.

Hồ sơ theo ứng dụng

Terminal dùng preedit, Chrome chờ ack, Firefox tắt sửa từ cũ, game tắt bộ gõ. Cùng một engine, hành vi phù hợp từng app.

Sửa lại từ đã gõ

Gõ thêm dấu vào từ vừa xong: tiêng + s → tiếng. Backspace xoá đúng ký tự hiển thị và giữ dấu phần còn lại.

Một lõi, mọi nền tảng

Rust core + C ABI cho IMK/TSF/Fcitx5/IBus, WASM cho web, Python làm oracle. Cùng một bộ golden test và conformance.

Kiến trúc

Chuỗi phím thô
→ một Action.

Mỗi phím đi qua Composer rồi trả về đúng một hành động: chèn, thay thế, preedit hoặc để hệ điều hành xử lý. Adapter chỉ việc áp Action — không chứa logic tiếng Việt.

  • 13.337 ca core + 3.000 kịch bản engine
  • NFC/NFD ở đầu ra, UTF-16 ở ranh giới FFI
  • MAX_RAW = 24 chặn chi phí xử lý mỗi phím
action.json
// gõ: t i e e n g s
{
  "type": "replace",
  "delete_before": 3,
  "insert": "ếng",
  "pass_key": false
}
chạy local · không gọi mạng
API Python

Gọi engine bằng
một request.

Playground chạy WASM ngay trong trình duyệt. API Python chạy bản oracle của dự án — cùng engine dùng để sinh bộ conformance cho bản Rust — nên bạn có thể kiểm tra, tự động hoá hoặc tích hợp mà không cần cài gì.

POST /api/type sẵn sàng
Kết quả Tiếng Việt là ngôn ngữ rất hay.

Hỗ trợ < Backspace, | Enter, ~ Escape. Không lưu nội dung bạn gõ.

curl
# chuỗi phím thô → chữ Việt
curl -s https://vifastkey.hoctuthien.com/api/type \
  -H 'content-type: application/json' \
  -d '{"text":"Tieengs Vieejt","method":"telex","tone":"new"}'
{"output":"Tiếng Việt","engine":"python","version":"0.4.0"}
  • Đúng oracle. Cùng engine Python sinh conformance cho Rust, không phải bản rút gọn.
  • 16 bảng mã. /api/charset chuyển Unicode, TCVN3, VNI-Windows, VISCII, VIQR, CP1258, NCR...
  • Nhẹ. Không gọi mạng, không model, chạy trong container Python 3.12.
Mã nguồn & tài liệu
Bắt đầu

Chạy thử hôm nay.

Engine, CLI và API đã chạy được. Adapter macOS, Windows TSF, Linux, Android, iOS và extension nằm trong repo, build theo hướng dẫn từng thư mục.

Thử CLI: cargo run -p vfk-cli -- --demo hoặc python -m apps.vfk_cli --text "Tieengs Vieejt"