Ruffle: Flash Player एम्युलेटर
(ruffle.rs)- Ruffle Rust में लिखा गया एक open-source Flash Player एम्युलेटर है, जो अब native रूप से supported नहीं रहे Flash content को आधुनिक operating systems और browsers में फिर से चलाने देता है
- यह desktop और web दोनों को support करता है, और web environment में WebAssembly का इस्तेमाल करता है
- Rust और WASM की guarantees का लाभ उठाकर Flash में समस्या के तौर पर जाने जाने वाले security risks से बचना इसका लक्ष्य है
- इसे इस तरह बनाया गया है कि आम users और website owners दोनों जल्दी से install करके चला सकें
- MIT/Apache 2.0 license के तहत उपलब्ध, यह freely usable मुफ्त open-source project है
आधुनिक environment में Flash content चलाना
- Ruffle Flash content को आधुनिक environment में चलाने के लिए एक Flash Player एम्युलेटर है
- इसे आधुनिक operating systems और browsers में native रूप से काम करने के लिए बनाया गया है, और बिना अतिरिक्त झंझट के Flash content को फिर से जीवित करने पर focus करता है
- implementation language Rust है, और यह desktop और web दोनों को target करता है
- web execution target के लिए WebAssembly का इस्तेमाल किया जाता है
Security approach और distribution terms
- यह Rust और WASM की guarantees का लाभ उठाकर Flash में मौजूद security pitfalls से बचने की कोशिश करता है
- इसे users और website owners दोनों के लिए जल्दी install और run करने लायक design किया गया है
- यह MIT/Apache 2.0 license के तहत distributed मुफ्त open-source project है
1 टिप्पणियां
Hacker News की राय
स्कूल के दिनों में बहुत से लोगों की तरह मैंने भी Flash गेम्स पर बहुत ज़्यादा समय बिताया था, और गेम इतिहास का एक हिस्सा गायब हो जाना अफसोस की बात लगती थी
फिर भी Ruffle कम से कम उसका कुछ हिस्सा वापस ज़िंदा कर सकता है। हाँ, इससे यह भी याद आता है कि iOS पर Wolfenstein RPG खेलने का अब भी कोई तरीका नहीं है। मेरे पास एक iPod है जो मैंने 2010 में लगभग सिर्फ वही गेम खेलने के लिए खरीदा था, लेकिन उसकी बैटरी हमेशा तो नहीं चलेगी। फिलहाल शायद Adrenaline Challenge खेलने ही जाना पड़ेगा
मुझे लगा था कि इसमें अभी कई साल लगेंगे, इसलिए तब तक मैं time bomb के बिना Flash का आख़िरी version install करके इस्तेमाल कर रहा था, और अच्छा है कि मैं गलत साबित हुआ :)
https://github.com/hikari-no-yume/touchHLE/pull/139
New York Historical Society की Slavery in New York प्रदर्शनी में The Merchant's House पेज चीज़ों को एक-एक करके दिखाते हुए समझाता है कि “सब कुछ slavery से जुड़ा हुआ था।” ऑनलाइन प्रदर्शनी में Flash पर निर्भर ऐसे बहुत से informational हिस्से हैं, और उनमें से यह पेज मुझे व्यक्तिगत रूप से सबसे अच्छा लगा
Ruffle जैसे प्रोजेक्ट्स की वजह से ऐसे काम को बनाए रखा जा सकता है। अब जबकि प्रदर्शनी हट चुकी है, यह लेख देखने का यही एकमात्र तरीका है, और इससे विशाल ऐतिहासिक शोध के नतीजों का उपयोग जारी रखा जा सकता है
लेकिन उसी प्रदर्शनी साइट की video galleries काम नहीं करतीं। ये उन वीडियो clips की होनी चाहिएँ जो प्रदर्शनी देखने वाले लोगों ने एक dedicated booth में छोड़ी थीं, और इस पर काफ़ी सामग्री पढ़ने के बाद लगता है कि ये उस समय New York के नागरिकों की slavery के प्रति सोच को दिखाने वाला बेहतरीन स्रोत था। New York Times की एक पंक्ति भी थी: “शौकिया home video की असहजता है इसमें। बैकग्राउंड शोर, लंबी ख़ामोशियाँ, कैमरे से बचती नज़रें।”
लगभग 400 वीडियो में से शायद कुछ ही होंगी, लेकिन इस पेज पर Ruffle ठीक से काम नहीं करता। जब मैंने देखने की कोशिश की तो टैब से थोड़ी देर के लिए audio सुनाई दिया था, इसलिए लगता है कुछ तो हो रहा है, लेकिन मैंने कभी वीडियो नहीं देखा। जो लोग इस क्षेत्र को बेहतर जानते हैं, अगर वे बता सकें कि मामला क्या है तो अच्छा होगा, क्योंकि इन सामग्रियों का खो जाना अफसोस की बात होगी
VLC या ffplay जैसे tools से इन्हें offline चलाया जा सकता है, और इन्हें ज़्यादा आधुनिक playback format में convert करना भी संभव है
AS3 कई मायनों में ECMAScript 4 था, और मुझे लगता है कि वह अपने समय से काफ़ी आगे था। जिन बहुत सी चीज़ों की हम आज उम्मीद करते हैं, वे Flash Player ecosystem में पहले से ही सामान्य सुविधाओं जैसी लगती थीं
बेशक कुछ डरावने पल भी थे, लेकिन उस दौर में जब browser-दर-browser JavaScript के साथ काम करना ही मुश्किल था, तब भी हम काफ़ी शानदार चीज़ें deploy कर पा रहे थे
मुझे AS3 के समय से आगे होने से ज़्यादा ऐसा लगता है कि Steve Jobs और उस समय के Adobe CEO की वजह से Flash छोड़ते हुए हम पीछे लौट गए
AS3 सच में शानदार था, सीखना आसान था, और कई developers के लिए मिलकर उसे बढ़ाना भी सुरक्षित था। Flash भी अपने आख़िरी दौर में काफ़ी तेज़ हो गया था, लेकिन अंत में सब कुछ नाली में चला गया
AS3 एक शानदार भाषा थी। Brendan Eich ने Lex Fridman इंटरव्यू में इसका संक्षेप में ज़िक्र किया था, और यह बात दिलचस्प लगी कि यह उस JavaScript के संभावित उत्तराधिकारी के सबसे करीब था जो browser में कभी पहुँचा ही नहीं। काश यह नया standard बन गया होता
काश ऐसा कोई क़ानून होता कि जब कोई software अब बेचा नहीं जाता, तो उसे public domain में छोड़ना पड़े
फिर भी संबंधित specs Adobe मुफ़्त में उपलब्ध कराता है
copyright की अवधि को 5 साल जैसे किसी व्यावहारिक स्तर तक कम करना भी अच्छा होगा। इससे भी आगे बढ़कर, copyright बनाए रखने के लिए हर साल तेज़ी से बढ़ने वाला tax भरना पड़े तो शायद और बेहतर हो
कानून बदलने से यह हल हो सकता है। उदाहरण के लिए antique software preservation law जैसा कुछ बनाया जाए, जिससे किसी भी software को open source किया जा सके, और उस कानून के तहत उठाए गए कदमों से जुड़े मुकदमों को रोका जा सके
अतिरिक्त incentive भी दिया जा सकता है। जैसे, commercially sold सभी software को या तो स्थायी रूप से archive करना होगा या open source करना होगा। कानूनी रूप से स्थायी archiving महँगी पड़ेगी, इसलिए बहुत सी जगहें open source का रास्ता चुन सकती हैं
इसलिए codebase के बड़े हिस्से को काटे बिना उन्हें open source बनाना अक्सर संभव नहीं होता, और वह काम महंगा भी पड़ता है तथा प्रकाशित code की उपयोगिता भी बहुत घट जाती है
या फिर tools पहले से ही इतने मुश्किल-से-revive होने की हालत में हैं कि यह व्यावहारिक रूप से सिर्फ पुराने catalog को revive करने तक सीमित रहेगा?
बेशक पुराना catalog बहुत विशाल है, लेकिन मैंने सुना है कि कई developers को Flash games बनाना पसंद था, इसलिए अगर कोई काफी जिद के साथ Flash game scene को revive करने की कोशिश करे तो वह दिलचस्प होगा
अभी इसकी खास ज़रूरत नहीं है, और हमारे पास रोज़ बेहतर होते promising web standards भी हैं, लेकिन ऐसी चीज़ों ने जिद्दी लोगों को कभी रोका नहीं है. अभी भी ऐसे लोग हैं जो पुराने Nintendo hardware के लिए नए games बनाने के तरीके ढूंढते हैं
अगर AS2 चाहिए तो कम-से-कम CS6 तक पीछे जाना होगा, और FLA support की रेंज कहीं ज़्यादा चौड़ी होने के कारण CS5.5 शायद बेहतर है. CS6 में वह क्यों हटाया गया, यह मत पूछिए
अगर Adobe को पैसे नहीं देने हैं, तो Adobe toolchain के free open source version Apache Flex का उपयोग किया जा सकता है. बेशक यह command-line compiler tool है और सिर्फ AS3 files compile करता है, इसलिए graphics अलग से बनाकर जोड़ने होंगे
अगर vector art है, तो संभव है कि SVG को SWF में बदलने का तरीका ढूंढना पड़े, फिर Flex में किसी अजीब class declaration जादू से उसे main SWF में शामिल करना पड़े, और उससे पैदा होने वाली सूक्ष्म masking समस्याओं से भी निपटना पड़े
यह एक accessible authoring tool था जो कम bandwidth में भी काम करने वाली, scalable, cross-platform single-file animations बना सकता था
हम अब तक उस नुकसान की भरपाई नहीं कर पाए हैं. JavaScript + canvas + web stack बिखरा हुआ है. अगर Ruffle runtime जल्दी शुरू हो सके, तो शायद मैं नया Flash बनाना शुरू कर दूँ
macOS पर यह ज़्यादा जटिल है क्योंकि वे versions सभी 32-bit हैं. M1 Mac पर Windows VM सेट करके उसके भीतर Flash चलाना बेहतर है, और Intel Mac पर macOS Mojave, जो 32-bit support वाला आखिरी version है, उसे अलग partition पर install किया जा सकता है
असल में वह WebAssembly के भीतर एक VM में पूरा Linux चलाता है, और उसके भीतर official licensed Adobe Flash Player चलाता है. और Flash license अलग से Harman से लेना पड़ता है, ऐसा लगता है. अब Flash intellectual property शायद उन्हीं के पास है
https://labs.leaningtech.com/cheerpx/for-flash
इनसे मेरा कोई संबंध नहीं है, मैंने बस कभी दिलचस्पी में इसे देखा था
लेकिन Flash चलाने के लिए यह पूरे Linux को emulate नहीं करता. यह PPAPI को emulate करता है और Flash Player को x86 JIT CheerpX में चलाता है
Yuri यहाँ CXFF architecture समझाते हैं:
https://youtu.be/7JUs4c99-mo?t=1045
अगर पूरा Linux system emulation चाहिए, तो वह भी है: https://webvm.io
अब भी ऐसा लगता है कि internet और युवा beginner programmers ने Flash के साथ एक सचमुच मूल्यवान tool खो दिया. यह अफसोस की बात है कि उसका security model सही तरह काम नहीं कर पाया. Flash applets में खूब features थे और entry barrier भी असाधारण रूप से कम था
दिक्कतें थीं, यह सही है, लेकिन ज़्यादातर software में होती हैं, और Flash सचमुच अपने समय से लगभग 20 साल आगे था. Flash के मरने के बाद web हास्यास्पद रूप से फीका हो गया
मेरी conspiracy theory यह है कि Apple और Google ने mobile support को मजबूर करने के लिए Adobe को पैसे देकर Flash को मरवाया
मैंने Flash की एक भी line कभी नहीं लिखी और न ही लिखना चाहता हूँ, लेकिन Flash sites कितनी टूटी-फूटी थीं, इसकी बुरी यादें अब भी हैं
widgets native की तरह behave नहीं करते थे, इसलिए अलग से दिखते थे; Firefox में keyboard focus की समस्याएँ लगातार बनी रहती थीं; video acceleration शायद ठीक से काम नहीं करती थी, इसलिए battery बहुत खाती थी. persistent cookies जैसे privacy nightmare भी थे, जिन्हें हटाने के लिए Adobe का Flash app खोलना पड़ता था, और permissions handling भी host system या browser को नज़रअंदाज़ करती थी
लगभग हमेशा बने रहने वाली security और stability समस्याएँ भी भुलाना मुश्किल है. व्यक्तिगत रूप से मुझे खुशी है कि Flash खत्म हो गया
Flash desktop पर भी खास अच्छा नहीं था, लेकिन जब mobile महत्वपूर्ण हो रहा था, तब mobile पर यह उससे भी कहीं ज़्यादा खराब था, इसलिए यह मरा
animation बनाई जा सकती थी, लेकिन उस समय हममें से अधिकांश को उसकी ज़रूरत या इच्छा नहीं थी
Flash को पसंद करने वाले मुख्यतः marketing departments, game developer बनना चाहने वाले लोग, और वे teenagers थे जो वे games खेलते थे
कम-से-कम developer के नज़रिए से, एक single-vendor battery-included SDK के साथ काम करना इस node_modules वाले cancer से कहीं बेहतर है
अगर पुराने blogs.adobe.com लेख पर जाएँ, तो अभी ऐसी live error दिखाई देती है:
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
यह error इस URL से आई है: https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...
इसमें कई साल लगे, लेकिन आखिर में यह सिर्फ आंशिक रूप से ही काम कर पाया। उस समय Flash अब भी ब्राउज़र में दबदबा रखता था, फिर भी Gnash के खत्म होने तक कोई भी इसे ठीक से port नहीं कर पाया
सोचता हूँ Ruffle ने इसे इतनी जल्दी काम करने लायक कैसे बना लिया