5 पॉइंट द्वारा GN⁺ 2025-07-31 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • Ruby ecosystem के लिए एक सरल लेकिन powerful वेब फ्रेमवर्क, जो low abstraction और low-ceremony पर आधारित है, और controller या REST resource concept हटाकर page/form/single-action केंद्रित संरचना प्रदान करता है
  • Server-rendered HTML, सीधे JS/CSS लिखने की सुविधा, OpenTelemetry integration, Sequel और OptionParser जैसे modern Ruby tools पहले से ही उपलब्ध हैं, जिससे install और development केवल कुछ मिनटों में हो जाता है
  • Class-based architecture, वास्तविक type-based session, form और parameter management, dynamic method/hash के उपयोग को कम करके clean code और auto-documentation को लक्ष्य बनाता है
  • Modern web platform का अधिकतम उपयोग: server-side और client-side validation का एकीकरण, BrutJS (Web Components), esbuild से CSS bundling और hashing, मजबूत security policy तथा DB design की मज़बूत बुनियाद
  • YAML को न्यूनतम रखना, Ruby/Hash-based config और स्पष्ट नामकरण व role separation के साथ, बिना किसी अनावश्यक abstraction/pattern को थोपे Ruby और browser टेक्नोलॉजी का आनंद लेना इसका उद्देश्य है

Brut फ्रेमवर्क की मुख्य विशेषताएँ

पूरी तरह नया स्ट्रक्चर – controller के बिना page-centric approach

  • controller, REST resource और route action के बजाय class-based pages, forms और single-action handlers का उपयोग
  • HTML सीधे server-side बनाई जाती है, जबकि JS/CSS आप अपनी जरूरत के हिसाब से लिख सकते हैं
  • उदाहरण: समय दिखाने वाला पेज सीधे TimePage < AppPage से define किया जाता है

आधुनिक वेब प्लेटफॉर्म का सक्रिय उपयोग

  • server-side और client-side validation को combine करने वाला form UX
  • BrutJS (web component library) से HTML की progressive enhancement
  • esbuild के साथ CSS bundling और hashing, बिना PostCSS या SASS के सरल हैंडलिंग

development productivity और बेसिक्स बिल्ट-इन

  • OpenTelemetry-based instrumentation, Sequel-based data access, OptionParser-based command-line automation
  • बेसिक security policy, DB columns/foreign-key defaults/indexes, हमेशा timezone-aware समय, आसान localization (I18n)
  • RSpec testing, Faker/FactoryBot से data generation, Phlex से HTML निर्माण

YAML हटाकर स्पष्ट config structure

  • I18n Ruby Hash-based, dynamic config dotenv से manage (YAML का लगभग इस्तेमाल नहीं)
  • सिर्फ docker-compose में ही YAML exception

अनावश्यक abstraction या pattern को नहीं थोपा जाता

  • naming और structure स्पष्ट (उदा. WidgetsPage को /widgets route से access करना)
  • data layer (DB::Widget) और domain layer (Widget) को पूरी तरह अलग रखा जा सकता है
  • controller concept नहीं है, आप किसी भी तरीके से business logic implement कर सकते हैं
  • complex functional patterns, monad, Proc आदि को force नहीं किया जाता

development experience और flexibility

  • RSpec आदि modern Ruby ecosystem tools डिफ़ॉल्ट रूप से मौजूद हैं
  • Phlex (HTML), Faker/FactoryBot, Sequel, OpenTelemetry जैसी प्रमुख libraries का active उपयोग
  • repeat होने वाले boilerplate/config/decision overhead से हटकर, Ruby और browser टेक्नोलॉजी के “मज़ा” पर फोकस

Brut क्यों?

  • Rails जैसे existing frameworks की repetitive setup, लगातार architecture/design debates और अनावश्यक flexibility के बजाय code का मज़ा खोजने पर फोकस
  • जल्द से जल्द build करके development और deployment का मज़ा लेने वाला Ruby-based web app framework के रूप में productivity और clarity पर केंद्रित दृष्टिकोण

शुरुआत और आगे की roadmap

  • Brut official Docker image, command-based fast app generation और execution support
  • ADRs.cloud जैसे real-world sample apps उपलब्ध
  • 1.0 version और official roadmap के लगातार अपडेट की योजना

3 टिप्पणियां

 
jhk0530 2025-07-31

https://naildrivin5.com/blog/2025/…

मुझे लगता है कि इसे इस लिंक से ठीक करना चाहिए

 
colus001 2025-07-31

लगता है लिंक गलत जुड़ा हुआ है।

 
GN⁺ 2025-07-31
Hacker News टिप्पणियाँ
  • forms और pages पर फोकस करने वाला तरीका मुझे पसंद आया। मैं भी अपने ऐप में यही approach इस्तेमाल करता हूँ। सारी interaction Forms और Links से चलती हैं, और JavaScript से किए गए सारे enhancements भी असल में किसी मौजूदा form को click करने जैसे ही हैं, चाहे वह hidden form ही क्यों न हो। HTML को सीधे देखकर हमेशा यह साफ़ समझा जा सकता है कि कौन-सा route वास्तव में interaction को handle कर रहा है। मेरे हिसाब से controllers का ज़रूरत से ज़्यादा इस्तेमाल होता है। असल में forms और models (backend), और views (Pages) ही काफ़ी हैं। बहुत-सी validation और controller में बार-बार दोहराई जाने वाली प्रक्रियाएँ भी framework कहीं ज़्यादा सलीके से handle कर सकता है

    • यह form को click event से simulate क्यों करता है, यह जानने की उत्सुकता है। सीधे submit() call करने से इसमें क्या फ़र्क है?
  • यह बात अच्छी लगी कि monad, algebraic data types, currying, या हर चीज़ को Proc से handle करने जैसी जटिल अवधारणाएँ समझना ज़रूरी नहीं है। अगर आप business logic में functor इस्तेमाल करना चाहते हैं, तो बिल्कुल कर सकते हैं। यही flexibility मुझे पसंद आई, और इससे लगता है कि इसे कुछ अनुभवी साथियों के साथ side project में आज़माया जा सकता है

  • यह framework शायद Sinatra की सादगी और Rails की समृद्धि के बीच एक बेहतरीन middle ground बन सकता है। मैं simple apps के लिए Sinatra और ज़रूरत पड़ने पर Rails इस्तेमाल करता रहा हूँ, लेकिन बहुत complex न होने वाले apps के लिए Rails कभी-कभी ज़रूरत से ज़्यादा भारी लगता था। इसे लेकर कुछ नया आज़माने का उत्साह है

    • एक और विकल्प के तौर पर Roda भी देखने लायक है। छोटे प्रोजेक्ट्स में यह मेरे लिए बेहतरीन रहा है और इसकी scalability भी अच्छी थी। plugin system की वजह से features बढ़ाना आसान था और routing tree भी संभालना आसान था

    • मेरे लिए hanami सबसे अच्छा middle ground रहा है, लेकिन आगे bruts कैसे आगे बढ़ता है, इस पर नज़र रखूँगा

  • मुझे David की किताब Sustainable Rails बहुत पसंद है, और Rails से जुड़ी किताबों में मैं हमेशा इसकी सिफारिश करता हूँ। इस framework का approach काफ़ी प्रभावशाली लगा। अगर ऐसे छोटे alternative frameworks में से कोई Sorbet को पूरी तरह अपनाकर form validation जैसी चीज़ों में इस्तेमाल करे, तो वह बहुत दिलचस्प होगा। हाँ, यह gradual typing वाले approach के उलट हो सकता है, लेकिन प्रयोग के तौर पर फिर भी काफ़ी मज़ेदार लगेगा

    • David सिर्फ़ बहुत प्रतिभाशाली developer ही नहीं हैं, बल्कि बहुत अच्छे speaker भी हैं। किताब के विषय से जुड़ी उनकी यह video talk भी recommend करूँगा: https://www.youtube.com/watch?v=CRboMkFdZfg

    • Sorbet अच्छा है, लेकिन structure enforcement और data validation के लिए मुझे व्यक्तिगत रूप से dry-rb ecosystem ज़्यादा पसंद है

  • समझ में आता है कि यह framework एक unusual license इस्तेमाल करता है, लेकिन क्या इसका मतलब यह है कि source code देखा नहीं जा सकता?

    • source github पर देखा जा सकता है: https://github.com/thirdtank/brut

    • license थोड़ा अजीब-सा लगता है, इस बात से सहमत हूँ

  • इस project को देखकर मुझे पुराना Camping framework याद आ गया, बस फर्क यह है कि इसमें dynamic parent class generator नहीं है

  • Brut की official site (https://brutrb.com/overview.html) पर भी दिलचस्प सामग्री काफ़ी थी

  • मैंने sample site पर login करने की कोशिश की, लेकिन github authentication के बाद तुरंत error मिल गया

    • मैं author हूँ। अभी abuse रोकने के लिए sample site पर login बंद कर रखा है। आज अचानक इसे public करने का फ़ैसला किया, इसलिए अभी तक इसे इस हालत में नहीं ला पाया हूँ कि कोई भी login कर सके। आप इसे local में चला सकते हैं, या https://brutrb.com/adrs.html पर pages browse कर सकते हैं और links click कर सकते हैं
  • मैं अभी Ruby इस्तेमाल नहीं करता, लेकिन project में रुचि होने की वजह से Star दे दिया, और हो सकता है यही मुझे Ruby सच में आज़माने की वजह दे दे

  • खास तौर पर Phlex का चुनाव मुझे पसंद आया। निजी तौर पर जानना चाहूँगा कि क्या यह framework Datastar js library और खासकर उस library के SSE (server-sent events) उपयोग के साथ भी अच्छी तरह मेल खाएगा। धन्यवाद