2 पॉइंट द्वारा GN⁺ 2025-06-17 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Chawan एक नया TUI वेब ब्राउज़र है जो टेक्स्ट-आधारित टर्मिनल में काम करता है
  • यह 0.2.0 संस्करण MVP चरण की सभी आवश्यक सुविधाएँ शामिल करता है और इसमें कोई गंभीर बग नहीं है
  • केवल libssh2, libbrotli, OpenSSL/LibreSSL लाइब्रेरी अनिवार्य हैं, और पुराने संस्करणों की कई dependencies हटा दी गई हैं
  • amd64 Linux के लिए static binary और .deb package भी उपलब्ध हैं, जिससे distribution और installation आसान हो जाती है
  • अगले संस्करण का लक्ष्य layout module की performance में सुधार और बेहतर UI अनुभव है

Chawan 0.2.0 का परिचय

Chawan टर्मिनल यूज़र इंटरफ़ेस (TUI) आधारित एक हल्का वेब ब्राउज़र है, जिसे टेक्स्ट वातावरण में आसानी से वेब ब्राउज़ करने के लिए डिज़ाइन किया गया एक open source प्रोजेक्ट है। यह 0.2.0 संस्करण minimum viable product (MVP) चरण की सभी प्रमुख सुविधाओं से लैस पहली स्थिर रिलीज़ है, और अभी तक कोई प्रमुख गंभीर बग रिपोर्ट नहीं हुआ है।

वितरण और इंस्टॉलेशन

  • source tree का tarball उपलब्ध है, और यदि आप सीधे compile करना चाहते हैं तो README के निर्देशों का पालन कर सकते हैं
  • amd64 Linux के लिए static binary distribution उपलब्ध है, जिसे archive extract करने के बाद make install कमांड से आसानी से install किया जा सकता है
    • हटाने के लिए make uninstall का उपयोग किया जा सकता है
  • वही distribution .deb package रूप में भी उपलब्ध है, जिसे Debian-आधारित सिस्टम पर सीधे install किया जा सकता है

package managers के लिए जानकारी

  • Chawan की अनिवार्य runtime dependencies इस प्रकार हैं:
    • libssh2
    • libbrotli (libbrotlicommon, libbrotlidec सहित)
    • OpenSSL(3.0 या उससे ऊपर) या LibreSSL (OpenBSD 7.7 संस्करण पर परीक्षण किया गया)
  • पहले के development version में उपयोग होने वाले zlib, libseccomp, termcap/ncurses, libcurl आदि अब आवश्यक नहीं हैं, इसलिए उन्हें dependencies से हटा दिया गया है
  • यदि packaging के दौरान कोई issue आता है, तो patch करने से पहले developer से संपर्क करना बेहतर होगा, क्योंकि समस्या को upstream में सीधे हल करने की संभावना अधिक है

आगे की योजना

  • यह 0.2.0 रिलीज़ अपेक्षा से अधिक समय लेने के बावजूद, सभी MVP सुविधाएँ पूरी होने के बाद आधिकारिक वितरण के लिए चुना गया संस्करण है
  • v0.2 branch में आगे केवल bug fixes किए जाएँगे, जबकि नए features master branch में जोड़े जाते रहेंगे
  • अगली रिलीज़ में layout module की performance और accuracy में सुधार तथा UI की user-friendliness बेहतर बनाना मुख्य लक्ष्य हैं

प्रोजेक्ट का महत्व और फायदे

  • Chawan टर्मिनल वातावरण के लिए अनुकूलित वेब ब्राउज़र है, जिससे resource-सीमित server और environments में भी web content तक पहुँचना संभव होता है
  • मौजूदा text web browsers के विपरीत, यह आधुनिक encryption और compression protocols के समर्थन तथा न्यूनतम dependencies जैसी विशेषताओं से अलग पहचान रखता है
  • open source होने के कारण यह आगे के विस्तार और customization के लिए अनुकूल है

1 टिप्पणियां

 
GN⁺ 2025-06-17
Hacker News टिप्पणियाँ
  • जब भी मैं nim में लिखा कोई प्रोजेक्ट देखता हूँ तो अच्छा महसूस करता हूँ। मुझे हमेशा लगा है कि nim, C/C++ और python के बीच कहीं स्थित सबसे दिलचस्प भाषाओं में से एक है। nim कम्युनिटी के आकार की तुलना में उसके उपयोगकर्ताओं की उत्पादकता बहुत ऊँची लगती है, इसलिए भले ही मैं nim को बहुत गहराई से न जानता हूँ, फिर भी मुझे लगता है कि उसके बारे में मेरी धारणा सही है। अफसोस है कि nim मुख्यधारा में अधिक नहीं बढ़ पाया।

  • shiomiru, मैं जानना चाहता हूँ कि TTY से जुड़ी अवधारणाएँ सीखने के लिए सबसे अच्छे resources कौन से हैं। मुफ़्त हों या paid, कोई भी recommendation चलेगी। TTY के बारे में मैं linusakesson.net का यह परिचयात्मक लेख जानता हूँ, लेकिन इसकी सीमा यह है कि यह termcap/terminfo/curses तक नहीं जाता। दूसरे कमेंट में O'Reilly की Termcap & Terminfo किताब का ज़िक्र है (इसे online यहाँ देखा जा सकता है)

    • chawan में अपने custom terminal module के इस्तेमाल के कारण मुझे standard X/Open curses की बहुत गहरी समझ नहीं है। असली escape sequences के मामले में XTerm का ctlseqs.ms दस्तावेज़ बेहद उपयोगी resource है। मैंने nick black के notcurses प्रोजेक्ट से भी बहुत से ideas लिए हैं, और खास तौर पर "sprixels" पर उनके notes की ज़ोरदार सिफारिश करता हूँ।
  • Chrome-आधारित एक और engine का इस्तेमाल किए बिना, थोड़े research के लिए आज़माने का कोई नया तरीका मिलना हमेशा अच्छा लगता है। आज जो चीज़ दिखाई गई, उसे मैं स्कूल के बाद खुद टेस्ट करने के लिए उत्साहित हूँ। sixel न होने वाले environments में खास तौर पर काम आने वाले एक बहुत शानदार alternative के रूप में chromium का terminal port: carbonyl सुझाऊँगा। मूल लेखक अब इसे सक्रिय रूप से develop नहीं कर पा रहे हैं, इसलिए इसकी functionality काफी सीमित है, और keyboard shortcuts, file saving जैसी कई चीज़ें अभी supported नहीं हैं। लेकिन Web compatibility और इसकी ताज़गी बहुत प्रभावशाली है। उम्मीद है कि rust जानने वाला कोई व्यक्ति इस प्रोजेक्ट को आगे बढ़ाएगा। कुछ महीने पहले जब मैंने देखा था, तब तक कोई लोकप्रिय fork नहीं था।

  • ऐसे प्रोजेक्ट सच में बहुत अच्छे लगते हैं। काश text-based sites की कोई list होती। मेरी निजी पसंद की दो sites हैं plaintextsports.com और lite.cnn.com

    • जिन text-focused sites पर मैं अक्सर जाता हूँ, उनमें text.npr.org और plaintextaccounting.org शामिल हैं।
  • कमाल है। मैंने इसे Lenovo M8 4th gen पर termux में source से build करके देखा, और सिर्फ nim install करना पड़ा। बिना root user के भी इसका साफ़-सुथरा installation हो जाना काफी प्रभावशाली लगा।

  • यह सचमुच बहुत सुंदर implementation है। मैं इसे अपने कई कामों में वास्तविक उपयोग में लेकर देखना चाहता हूँ कि यह कितना आगे तक जा सकता है। HN साइट इसमें बहुत आराम से पढ़ी जाती है।

  • मैं हमेशा कोशिश करता रहा हूँ कि मेरी वेबसाइट Links में भी अच्छी दिखे, और अब ऐसा लग रहा है कि एक नया candidate आ गया है। कुछ CSS support होने की वजह से elements के बीच spacing जैसी चीज़ों पर अब और सोचना पड़ेगा। Links में margin/padding पूरी तरह ignore हो जाते थे, इसलिए menus वगैरह को एक लाइन में साफ़-सुथरे ढंग से रखना आसान था, लेकिन अब स्थिति थोड़ी ज़्यादा पेचीदा हो गई है।

    • मूल रूप से लक्ष्य यही था कि बिना किसी अलग configuration के यह "बस काम करे", लेकिन वास्तविकता में कभी-कभी ऐसा नहीं होता। ऐसे मामलों को bug माना जा सकता है। अगर grid layout के लिए custom CSS सच में ज़रूरी है, तो जानकारी के लिए बता दूँ कि chawan standard grid media query को support करता है।
  • यह बहुत शानदार प्रोजेक्ट है, और nim में बना होना इसे और भी अच्छा बनाता है। लेकिन cha example.com टाइप करने पर मुझे basic commands (hjkl वगैरह) का इस्तेमाल बिल्कुल समझ नहीं आ रहा। number keys दबाने पर नीचे बाईं ओर कुछ दिखता है, लेकिन उसके अलावा कुछ भी प्रतिक्रिया नहीं होती। मैंने इसे MacOS Sequoia 15.5 Apple Silicon और Nim 2.24 environment में खुद build किया। वेबपेज ठीक से load हो जाते हैं, लेकिन commands काम नहीं कर रहे। समझ नहीं आ रहा कि मैं कुछ मिस कर रहा हूँ या यह कोई bug है।

    • Ghostty, iTerm2, Terminal.app जैसी अलग-अलग terminals में भी मुझे यही समस्या मिली।
  • यह दिलचस्प है कि यह termcap/ncurses का अब इस्तेमाल नहीं करता। क्या इसका मतलब है कि terminal handling सीधे खुद करता है?

    • Chawan वास्तव में ncurses का इस्तेमाल नहीं करता, बल्कि termcap का इस्तेमाल करता था। ncurses अपने अंदर termcap implementation भी शामिल रखता है, इसलिए भ्रम हो सकता है। शुरुआत w3m इस्तेमाल करने की वजह से termcap से की थी, लेकिन termcap अब लगभग बेकार interface है और modern terminals में ज़रूरी true color भी व्यक्त नहीं कर सकता। इसका एकमात्र फ़ायदा यह है कि यह शायद बहुत पुराने 80s terminals पर "किस्मत अच्छी हो तो" काम कर जाए, लेकिन वह भी ज़्यादा मूल्यवान नहीं है। terminfo पर जाने के बजाय मैंने उसे ही छोड़ दिया और terminal query approach अपनाई। terminal DB भी built-in है, लेकिन उसका उपयोग सिर्फ कुछ XTerm-incompatible TERM values की पहचान के लिए होता है। अगर कोई terminal queries का सही जवाब देता है, तो वह TERM value चाहे जो हो, ठीक से काम करेगा।
  • macOS पर सिर्फ एक make command से इसका आसानी से build हो जाना काफी प्रभावशाली लगा। elinks के लिए कोई आधुनिक alternative मिलना अच्छा है।