
क्लासिक Mac OS 9 PowerPC के लिए एक आधुनिक वेब ब्राउज़र। वास्तविक CSS3, ES5 JavaScript, नेटिव HTTPS। CodeWarrior के साथ Carbon API पर निर्मित।
25 साल पुराने Mac पर आधुनिक वेब।
MacSurf Classic Mac OS 9 PowerPC के लिए एक वेब ब्राउज़र है। CSS3, ES5 JavaScript, और अल्फा के साथ PNG — G3 iMac पर चल रहा है।
MacSurf एक फुल-टाइम प्रोजेक्ट है। अगर इसने आपके पुराने Mac को वेब पर वापस ला दिया है, तो हर डॉलर विकास को जारी रखने में मदद करता है। साथ ही Patreon पर डेव लॉग के साथ प्रगति को फॉलो करें।[!NOTE] प्रारंभिक अल्फ़ा — यह 233 MHz G3 पर नेटिव रूप से TLS 1.3 चलाता, रेंडर करता और बोलता है, लेकिन अधिकांश आधुनिक वेब अभी इसमें काम नहीं करेगा। हाथ से बने पेज, रेट्रो-शैली की साइटें, और PowerPC पर ES5 JavaScript का विचित्र रोमांच अपेक्षित है। मनमानी आधुनिक साइटों पर स्मूथ ब्राउज़िंग, वीडियो, या किसी भी React-भारी चीज़ की अपेक्षा न करें।
अगर आपके पास कोई Power Mac G3 या G4 पड़ा है, तो उसे लोड करें और देखें क्या टूटता है — बग रिपोर्ट और वास्तविक-हार्डवेयर स्क्रीनशॉट ही इस प्रोजेक्ट को चाहिए। वर्तमान पंच लिस्ट के लिए docs/status.md देखें।
वेब ने बीस साल पहले Classic Mac OS को पीछे छोड़ दिया। आधुनिक HTTPS ने 2016 के आसपास इसे खत्म कर दिया। आज किसी कोठरी से G3 या G4 निकालें तो वह मुश्किल से एक भी जीवित वेबसाइट तक पहुँच पाता है।
MacSurf इसे मशीन पर ही ठीक करने का एक प्रयास है — कोई स्क्रीनशॉट प्रॉक्सी नहीं, कोई रिमोट टर्मिनल ट्रिक नहीं। एक नेटिव ब्राउज़र, जो प्लेटफ़ॉर्म पर पहले से मौजूद टूल्स से बनाया गया है: CodeWarrior, Carbon, QuickDraw, Open Transport। असली CSS3 लेआउट और असली JavaScript, 1999 के iMac के 64 MB मेमोरी फ्लोर के भीतर चल रहे हैं। मई 2026 के अंत से यह macTLS के माध्यम से सीधे आधुनिक वेब से TLS 1.2 बोलता है — एक BearSSL-आधारित स्टैक जो Mozilla CA बंडल के 121 ट्रस्ट एंकर के साथ ब्राउज़र बाइनरी के अंदर शिप होता है। अब किसी प्रॉक्सी की ज़रूरत नहीं।
जहाँ तक हम बता सकते हैं, यह Classic Mac OS के लिए पहला गंभीर NetSurf पोर्ट है, और Mac OS 9 पर नेटिव CSS Grid, CSS कस्टम प्रॉपर्टी, और ES5 JavaScript के साथ भेजा गया पहला ब्राउज़र है।
नीचे दिया गया प्रत्येक शॉट एक वास्तविक माइलस्टोन है, जिसे Mac OS 9 चला रहे Power Macintosh G3 पर कैप्चर किया गया है। फ़िक्स-नंबर एनोटेशन इस रेपो के कमिट इतिहास से मेल खाते हैं।
नवीनतम MacSurf 1.68 — "macQJS" (2026-07-07) है: जावास्क्रिप्ट इंजन बदल दिया गया — Duktape (ES5) → macQJS (QuickJS, ES2023), इसलिए आधुनिक JavaScript Mac OS 9 पर नेटिव रूप से चलती है। साथ ही कार्यशील टेक्स्ट इनपुट (कैरेट / सेलेक्शन / Tab), बनाए रखे गए लॉगिन, बुकमार्क मेनू + डाउनलोड मैनेजर, स्प्लिट-स्क्रॉलबार रेंडर फ़िक्स, डाउनलोड करने योग्य वेब-फ़ॉन्ट आइकन ग्लिफ़, और एक बड़ा परफ़ॉर्मेंस पास (लगभग-तत्काल स्टार्टअप, इमेज/फ़ॉन्ट डिस्क कैश, व्यूपोर्ट लेज़ी इमेज लोडिंग)। 68kmla.org के सम्मान में नामित — वह समुदाय जिसने इस चक्र को आगे बढ़ाया। पूर्ण नोट: release-notes/MacSurf-1.68.md।
पूर्ववर्ती MacSurf v1.4 — Open House (2026-06-01): JavaScript मैराथन बंद। एक ही रिलीज़ में 23 JS-ब्रिज मुद्दे खुले से बंद हो गए — setTimeout / setInterval / requestAnimationFrame, window.location, window.history, URL, URLSearchParams, classList, style, Event कंस्ट्रक्टर, MutationObserver, DOMParser, FormData, localStorage, , / इवेंट्स, साथ ही / टॉगल। नए प्रोब सूट ने G3 iMac पर स्कोर किया। डायग्नोस्टिक पेज लाइव: , , , सभी वास्तविक काउंटर रेंडर करते हैं। View Source इनलाइन रेंडर होता है, Find-in-page एक वास्तविक Carbon डायलॉग खोलता है। पूर्ववर्ती ने मल्टी-कर्व TLS 1.3 शिप किया; Classic Mac OS पर पहला नेटिव TLS 1.3 था; ने एंट्रॉपी छेद बंद किया; क्रोम-रीडिज़ाइन रिलीज़ था; कोल्ड-लोड स्पीडअप था (mactrove.com 30+s → ~2-3s); पहला नंबरित अल्फ़ा पर।
browser/netsurf/frontends/macos9/MacSurf.mcp खोलें और Build चुनें। v1.3.1 वर्कस्पेस पर v1.4 बिल्डरों को प्रोजेक्ट में एक नई सोर्स फ़ाइल जोड़नी होगी: browser/netsurf/desktop/search.c (नए Find डायलॉग के लिए browser_window_search प्रदान करती है; content/textsearch.c पहले से मौजूद है)। macTLS v1.3.1 से अपरिवर्तित है। v1.2 वर्कस्पेस पर v1.3 बिल्डरों को TLS 1.3 के लिए चार macTLS फ़ाइलें जोड़नी होंगी: bearssl/src/ec/ec_c25519_m15.c, os9/ostls_tls13_keysched.c, os9/ostls_tls13_record.c, os9/ostls_tls13_handshake.c। v1.0 वर्कस्पेस पर v1.2 बिल्डरों को desktop/download.c चाहिए। सबसे शुरुआती रिलीज़ में पहले से वायर्ड CW8 प्रोजेक्ट के साथ BuildPack.sit स्नैपशॉट शिप होता है, लेकिन वर्तमान बिल्ड एक नए क्लोन से सीधे काम करते हैं।यदि संदर्भ चाहिए तो पहले के अल्फ़ा नोट: docs/release-notes/MacSurf-0.1a1.md।
ब्राउज़र का निर्माणMacSurf Mac OS 9 पर CodeWarrior 8 Pro (8.3 अपडेट) के साथ बिल्ड किया जाता है। सोर्स Retro68 PowerPC GCC के विरुद्ध क्रॉस-कंपाइल-क्लीन है, जिसका उपयोग हम Linux-पक्ष की तेज़ सिंटैक्स जाँच के लिए करते हैं। |
![]() v0.2: Mac OS 9 पर JavaScript पहला वास्तविक दुनिया का JS-युक्त पेज। Duktape 2.7.0 ES5 लाइव मूल्यांकन कर रहा है: Math.sqrt, JSON, ES5 ऐरे विधियाँ।
|
![]() fixes73: CSS ट्रांसफ़ॉर्म नेटिव transform: rotate() / scale() / translate()। इंटीजर Q15 sin/cos टेबल, कोई FPU निर्भरता नहीं, QuickDraw पर मनमाने कोण।
|
![]() fixes74d: रेडियल ग्रेडिएंट संकेंद्रित PaintOval स्टैक के माध्यम से 2-स्टॉप रेडियल ग्रेडिएंट। डिकोड पर 16 लेवल स्मियर किए गए। शेप + पोज़िशन कीवर्ड पार्स किए गए।
|
![]() fixes77: CSS एनिमेशन fixes73 रोटेशन के ऊपर लीनियर पिंग-पोंग एनिमेशन प्लेयर। विगल, स्विंग, और पूर्ण 0°→359° स्पिन। |
![]() fixes79b: PNG पारदर्शिता QuickTime Graphics Importer NetSurf इमेज कंटेंट हैंडलर को फ़ीड कर रहा है। PNG + GIF + BMP, सभी वास्तविक पारदर्शिता के साथ। |
![]() fixes136: word-break / overflow-wrap word-break: break-all, keep-all, white-space: nowrap, लेगेसी word-wrap: break-word। URL-शैली आक्रामक रैपिंग।
|
![]() fixes147: स्टैकिंग कॉन्टेक्स्ट CSS 2.1 पेंटिंग क्रम। Opacity, ट्रांसफ़ॉर्म, और स्पष्ट z-index सभी नए स्टैकिंग कॉन्टेक्स्ट बनाते हैं, वास्तविक हार्डवेयर पर सही ढंग से पेंट किए गए।
|
![]() fixes151: CSS Grid कॉलम प्लेसमेंट grid-column: span N, 1 / -1 फुल-रो हीरो, पोज़िशनल start / end, span + ऑटो-रैप। OS 9 पर वास्तविक Grid लेआउट।
|
![]() v1.0: शोकेस नया टूल-बेल्ट टूलबार, रेज़र-शार्प URL फ़ील्ड, और OS 9.2.2 चला रहे G3 iMac पर home.macsurf.org रेंडर करने वाले मैटेड आइकन। मूल सर्वर तक सीधे macTLS के माध्यम से नेटिव HTTPS, सर्वर-रेंडर्ड पोर्टल, अंत-से-अंत तक ट्रू-कलर इमेज। | |
| घटक | भाषा | उद्देश्य |
|---|---|---|
browser/ | C (C89, CW8) | NetSurf फ़ोर्क जिसमें macos9 फ्रंटएंड है। UI के लिए Carbon, ड्रॉइंग के लिए QuickDraw, नेटवर्किंग के लिए Open Transport, JS के लिए Duktape। |
proxy/ | Go (stdlib only) | पुराना TLS-स्ट्रिपिंग HTTP प्रॉक्सी। अब बड़े पैमाने पर सेवानिवृत्त क्योंकि macTLS नेटिव रूप से काम करता है, लेकिन फ़ॉलबैक के रूप में या CarbonLib के बिना मशीनों पर अभी भी उपयोगी है। Mac सादा HTTP भेजता है, प्रॉक्सी HTTPS के माध्यम से फ़ेच करता है, सादा HTTP लौटाता है। |
macTLSसहयोगी रेपो | C (CW8) | OS 9 के लिए नेटिव TLS 1.2 लाइब्रेरी — Mac से सीधे आधुनिक HTTPS, किसी प्रॉक्सी की आवश्यकता नहीं। अंदर BearSSL, 121 ट्रस्ट एंकर बेक किए हुए। |
|
रेंडरिंग पाइपलाइन
CSS — लेआउट में लगभग 150 प्रॉपर्टी उपयोग होती हैं
|
JavaScript — Duktape 2.7.0, पूर्ण ES5
इमेज — सभी पाँच फ़ॉर्मेट
नेटवर्किंग
ब्राउज़र क्रोम
|
fetchloadDOMContentLoaded<details><summary>JS 19/19 pass, 0 failabout:cacheabout:memoryabout:configabout:perf