14 คะแนน โดย subinium 2026-03-17 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

หลายคนน่าจะสร้างเครื่องมือ CLI/TUI ด้วย Rust เพราะข้อดีอย่างประสิทธิภาพของ Rust และการแจกจ่ายแบบไบนารีเดียว

เครื่องมืออย่าง Textual ของ Python หรือ Ink ของ JS นั้นไวยากรณ์ค่อนข้างใช้งานง่าย แต่บางครั้งก็อาจกังวลเรื่องการพึ่งพา runtime หรือ overhead ด้านประสิทธิภาพได้เช่นกัน ส่วนฝั่ง Rust แม้ ratatui จะมี ecosystem ที่ดี แต่ก็ใช้เวลาไม่น้อยในการจัดเลย์เอาต์

เลยทำขึ้นมาสองอย่างนี้

1. tui.builders — Terminal UI บนเบราว์เซอร์

เป็นเอดิเตอร์ที่ออกแบบแบบภาพและส่งออกโค้ด Rust ได้
https://tui.builders

เมื่อคุณลากวิดเจ็ตและตั้งค่าคุณสมบัติใน inspector
โค้ดจะถูกสร้างแบบ 1:1:

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

2. SuperLightTUI — ออกแบบมาเพื่อการแมปแบบ 1:1 นี้

เป็นไลบรารี Rust TUI

ใช้แนวทาง utility class แบบ CSS flexbox + Tailwind
ถ้ามีประสบการณ์พัฒนาเว็บ ก็สามารถจัดเลย์เอาต์ได้โดยแทบไม่ต้องเรียนรู้เพิ่ม

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; }  
    });  
});  

closure เดียวคือทั้งแอป ไม่ต้องมีโครงสร้าง App, event loop
หรือการ implement trait ก็เรนเดอร์ได้ใน 3 บรรทัด

  • dependency 2 ตัว (crossterm + unicode-width), unsafe 0
  • เรนเดอร์แบบ immediate-mode, เฟรมละ ~1ms
  • วิดเจ็ตมากกว่า 50 แบบ (กราฟ, ตาราง, รูปภาพ, AI widget ฯลฯ)
  • ใช้งานได้ด้วยตัวไลบรารีอย่างเดียวโดยไม่ต้องใช้เอดิเตอร์

หวังว่าจะเป็นประโยชน์สำหรับคนที่อยากได้ทั้งประสิทธิภาพของ Rust TUI และความเร็วในการพัฒนาไปพร้อมกัน

2 ความคิดเห็น

 
@deleted_gndfr0dev 2026-03-21

เคยใช้ Ratatui แล้วรู้สึกขี้เกียจเลยเลิกใช้ไป แต่นี่จับจุดด้อยได้ตรงเป๊ะเลย! ดีมากจริง ๆ 555

 
kayws426 2026-03-17

ว้าว! ดีมากเลย!!