tui.builders – टर्मिनल UI का Figma, Rust कोड जनरेशन तक
(tui.builders)Rust की performance और single binary deployment जैसे फ़ायदों की वजह से काफ़ी लोग CLI/TUI tools Rust में बनाते होंगे।
Python के Textual या JS के Ink जैसे tools का syntax काफ़ी आसान है, लेकिन कभी-कभी runtime dependency या performance overhead की चिंता भी होती है। Rust की तरफ़ ratatui का ecosystem अच्छा है, लेकिन layout सेट करने में काफ़ी समय लग जाता है।
इसीलिए मैंने दो चीज़ें बनाई हैं।
1. tui.builders — ब्राउज़र में टर्मिनल UI
यह एक editor है जिसमें आप visual तरीके से design कर सकते हैं और Rust code export कर सकते हैं।
https://tui.builders
widgets को drag करके और inspector में properties सेट करने पर
code 1:1 मैपिंग के साथ generate होता है:
- inspector: width=30, padding=2, border=rounded
- code: .w(30).p(2).border(Border::Rounded)
2. SuperLightTUI — इस 1:1 mapping के लिए डिज़ाइन की गई
Rust TUI library
CSS flexbox + Tailwind
utility class स्टाइल होने की वजह से, अगर आपको web development का अनुभव है
तो बिना अलग से कुछ सीखे भी layout बना सकते हैं।
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 है। App struct, event loop,
trait implementation के बिना 3 लाइनों में rendering हो जाती है।
- 2 dependencies (crossterm + unicode-width), unsafe 0
- immediate-mode rendering, ~1ms frame
- 50+ widgets (chart, table, image, AI widget आदि)
- editor के बिना सिर्फ़ library से भी इस्तेमाल संभव
उम्मीद है कि यह उन लोगों के काम आएगा जो Rust TUI की performance बनाए रखते हुए development speed भी बढ़ाना चाहते हैं।
- tui.builders: https://tui.builders
- GitHub: https://github.com/subinium/SuperLightTUI
- crates.io: cargo add superlighttui
2 टिप्पणियां
Ratatui इस्तेमाल करते हुए आलस की वजह से मैंने इसे बस छोड़ ही दिया था, लेकिन इसने उसकी कमियों को एकदम सही पकड़ लिया है! सच में बहुत बढ़िया है हाहा
वाह! बढ़िया है!!