14 điểm bởi subinium 2026-03-17 | 2 bình luận | Chia sẻ qua WhatsApp

Mình nghĩ có khá nhiều người xây dựng công cụ CLI/TUI bằng Rust vì những ưu điểm như hiệu năng của Rust và khả năng triển khai dưới dạng một binary duy nhất.

Các công cụ như Textual của Python hay Ink của JS có cú pháp tương đối thuận tiện, nhưng đôi khi cũng khiến người ta bận tâm về phụ thuộc runtime hoặc overhead hiệu năng. Ở phía Rust, ratatui có một hệ sinh thái tốt, nhưng việc dựng layout cũng tốn không ít thời gian.

Vì vậy mình đã tạo ra hai thứ.

1. tui.builders — Terminal UI ngay trong trình duyệt

Đây là một trình soạn thảo cho phép thiết kế trực quan và xuất mã Rust.
https://tui.builders

Khi kéo thả widget và thiết lập thuộc tính trong inspector,
mã sẽ được tạo theo ánh xạ 1:1:

  • inspector: width=30, padding=2, border=rounded
  • mã: .w(30).p(2).border(Border::Rounded)

2. SuperLightTUI — thư viện Rust TUI được thiết kế

cho ánh xạ 1:1 này.

Theo cách của utility class kiểu CSS flexbox + Tailwind,
nên nếu đã có kinh nghiệm phát triển web thì bạn có thể dựng layout
mà gần như không cần học thêm gì.

slt::run(|ui| {  
    ui.bordered(Border::Rounded).p(2).gap(1).col(|ui| {  
        ui.text("hello").bold().fg(Color::Cyan);  
        if ui.button("click").clicked { count += 1; }  
    });  
});  

Toàn bộ ứng dụng chỉ nằm trong một closure. Không cần struct App, event loop,
hay implement trait, chỉ 3 dòng là render được.

  • 2 dependency (crossterm + unicode-width), 0 unsafe
  • render immediate-mode, frame khoảng ~1ms
  • hơn 50 widget (chart, table, image, AI widget, v.v.)
  • có thể dùng chỉ với thư viện mà không cần editor

Hy vọng điều này sẽ hữu ích cho những ai muốn giữ hiệu năng của Rust TUI
đồng thời cũng tăng tốc độ phát triển.

2 bình luận

 
@deleted_gndfr0dev 2026-03-21

Từng dùng Ratatui nhưng vì thấy phiền nên thôi không dùng nữa, mà cái này đúng là nhắm trúng nhược điểm luôn! Thật sự rất tốt haha

 
kayws426 2026-03-17

Wow! Hay quá!!