- Firefox 151 डेस्कटॉप से Web Serial API सपोर्ट करता है, जिससे web apps native software के बिना compatible serial devices के साथ communicate कर सकती हैं
- Web Serial एक API है जो JavaScript से serial devices को read और write करने देता है, इसलिए microcontrollers, 3D printers, power meters आदि से सीधे connect किया जा सकता है
- Adafruit workflow में Web Serial के जरिए firmware भेजकर CircuitPython install किया जाता है, और
code.py फ़ाइल से device code को आसानी से deploy किया जाता है
- Firefox explicit user permission, site-by-site और port-by-port permissions, तथा add-on gating के जरिए device access के security और privacy risks को कम करता है
- Mozilla, WICG चरण में मौजूद Web Serial को WHATWG standardization की ओर आगे बढ़ा रहा है, और real hardware workflows पर testing व feedback मांग रहा है
Web Serial API और सपोर्ट की सीमा
- Firefox 151 for Desktop से Web Serial API सपोर्ट करता है, जिससे web applications native software के बिना compatible devices के साथ communicate कर सकती हैं
- Web Serial API एक web API है जो websites को JavaScript के जरिए serial devices को read और write करने देता है
- लक्षित devices में microcontrollers, development boards, 3D printers, power meters, और अन्य serial-connected hardware शामिल हैं
- serial-compatible devices में Espressif ESP आधारित boards, Raspberry Pi Picos, 3D printers, LEGO devices आदि शामिल हैं
- आधुनिक computers में आम तौर पर serial ports नहीं होते, लेकिन USB port से जुड़े या Bluetooth के जरिए paired devices operating system में अपने आपको serial port जैसा दिखाने के लिए serial-capable device के रूप में advertise कर सकते हैं
- Web Serial compatible devices का उपयोग hobby developers, hardware hackers, educators, makers, और developers द्वारा home automation, hardware prototyping, 3D printing आदि में किया जाता है
Adafruit और CircuitPython workflow
- Adafruit open source hardware और STEM शिक्षा के क्षेत्र में Web Serial के उपयोग को दिखाने वाली प्रमुख organizations में से एक है
- Adafruit, Web Serial के जरिए firmware भेजकर अपने devices पर CircuitPython को तेज़ी से install करने देता है
- installation के बाद, यदि फ़ाइल का नाम
code.py रखा जाए तो अधिकांश devices पर USB device में फ़ाइल drag-and-drop करके code deploy किया जा सकता है
- Python programs, साधारण text-based input/output के जरिए Web Serial के माध्यम से web pages के साथ interoperable हो सकते हैं
- Adafruit Web Serial Tool का उपयोग किया जा सकता है, और यह CircuitPython site के
OPEN INSTALLER तरीके से अलग है
- example CircuitPython Web Serial project में local web page से Web Serial का उपयोग करके CircuitPython file चला रहे device को messages भेजे जाते हैं
- Mozilla ने Adafruit के साथ मिलकर Firefox implementation को इस community में आम तौर पर इस्तेमाल होने वाले वास्तविक hardware workflows के हिसाब से test किया
- Mozilla engineer Alex Franchuk ने Web Serial और electronic devices को जोड़ने वाला Page Playground बनाया
पावर मापन और home automation
- Mozilla के Florian Quèze ने power consumption measurement के कई projects पर प्रयोग किया, और Web Serial के जरिए commercial USB power meters से power data पढ़कर उसे Firefox में दिखाने वाला demo बनाया
- यह code data को Firefox Profiler में export कर सकता है, जिससे power data को visualize और share करना आसान हो जाता है
- संबंधित resources हैं page, GitHub repo, और तीन brightness modes वाले प्रकाश उपकरण की power usage रिकॉर्ड करने वाला Firefox Profiler data
- test किए गए USB power meters में AVHzY C3 USB, Joy-IT TC66C, और YZXStudio USB ZY1280 शामिल हैं
- Home Assistant home automation के लिए एक लोकप्रिय open source project है, और ESPHome सस्ते ESP32 और समान devices के लिए Home Assistant compatible firmware उपलब्ध कराता है
- ESPHome firmware को Web Serial के जरिए कुछ clicks में install और configure किया जा सकता है
सुरक्षा और privacy
- जब web platform को hardware devices को read और write करने की क्षमता मिलती है, तो security और privacy को लेकर चिंताएं बढ़ती हैं
- Web Serial में websites तब तक serial ports को देख या access नहीं कर सकतीं जब तक user स्पष्ट रूप से अनुमति न दे
- port permissions site-by-site और port-by-port आधार पर दी जाती हैं
- Web Serial API यह आवश्यक करता है कि website
navigator.serial.requestPort() call करे, और user उस port को चुन सकता है जिसे access की अनुमति देनी है, या सभी access को अस्वीकार कर सकता है
- website को connected devices की सूची नहीं मिलती, और user द्वारा चुने गए port के अलावा कोई उपयोगी fingerprinting information प्रदान नहीं की जाती
- Firefox, Web MIDI API implementation में पेश किए गए add-on gating का उपयोग करता है ताकि user समझ सके कि site कब और क्यों serial port access मांग रही है
- add-on gating, अन्य web permission prompts की तुलना में user को यह अधिक विस्तार से बताता है कि वह किस चीज़ की अनुमति दे रहा है
- add-on gating prompt, जब site पहली बार port access मांगती है, तब port selection prompt से पहले दिखाया जाता है
- Firefox Enterprise Policies का उपयोग करने वाले organizations में Web Serial default रूप से disabled रहता है
- administrators, DefaultSerialGuardSetting policy setting के जरिए organization-wide Web Serial feature को स्पष्ट रूप से allow या block कर सकते हैं
standardization और feedback
- Web Serial अभी Web Incubator Community Group(WICG) चरण में है, लेकिन Mozilla का मानना है कि इसके scope और लंबे incubation को देखते हुए standardization का रास्ता मौजूद है
- Mozilla, new Workstream proposal के माध्यम से WHATWG में Web Serial API standardization को आगे बढ़ा रहा है
- Mozilla, ecosystem partners और standards bodies के साथ मिलकर peripherals तक web access के तरीके को आकार देने की योजना बना रहा है
- यदि आपके पास device-based Web Serial workflow है, तो उसे Firefox में test किया जा सकता है
- Mozilla Connect पर project share किया जा सकता है, सवाल पूछे जा सकते हैं, या feedback छोड़ा जा सकता है
- तकनीकी समस्याओं के लिए support.mozilla.org देखें या Bugzilla में bug submit करें
1 टिप्पणियां
Lobste.rs की राय
अच्छा होगा अगर WebUSB भी implement कर दें
सोच रहा हूँ कि आसानी से बहकने वाले लोगों को, खासकर उन लोगों को जो serial port क्या होता है यह नहीं जानते, कैसे सुरक्षित रखा जाएगा। Mozilla के standards positions में भी यह बात है
macro functionality वाले keyboards को लेकर थोड़ी ज्यादा चिंता होती है। फिर भी Chrome में यह feature कई सालों से है और कोई बड़ी समस्या नहीं हुई, इसलिए मुझे यह कोई गंभीर चिंता नहीं लगती। खासकर अब जब peripherals को configuration के लिए लगातार ज्यादा इस्तेमाल किया जा रहा है, इसकी उपयोगिता जोखिम से कहीं ज्यादा है
यह बकवास है। web page viewer में serial port access जोड़ना कितना पागलपन है, यह शब्दों में कहना मुश्किल है
अरे हाँ, बिल्कुल। वेबसाइटों को बस यही चाहिए था। WebRawSockets का इंतज़ार कर रहा हूँ। आधा मजाक है, लेकिन जब मैं पहले इसमें शामिल था, तब SVG working group वास्तव में SVG में raw sockets जोड़ने की कोशिश कर रहा था