अपडेट पर वापस जाएँ
New releaseJul 14, 2026

macsurf v2.0

क्लासिक Mac OS 9 PowerPC के लिए एक आधुनिक वेब ब्राउज़र। वास्तविक CSS3, ES5 JavaScript, नेटिव HTTPS। CodeWarrior के साथ Carbon API पर निर्मित।

साझा करें

MacSurf

25 साल पुराने Mac पर आधुनिक वेब।

MacSurf Classic Mac OS 9 PowerPC के लिए एक वेब ब्राउज़र है। CSS3, ES5 JavaScript, और अल्फा के साथ PNG — G3 iMac पर चल रहा है।

MacSurf एक फुल-टाइम प्रोजेक्ट है। अगर इसने आपके पुराने Mac को वेब पर वापस ला दिया है, तो हर डॉलर विकास को जारी रखने में मदद करता है। साथ ही Patreon पर डेव लॉग के साथ प्रगति को फॉलो करें।

Ko-Fi पर मेरा अनुसरण करें!

समर्थक

MacSurf अपने समर्थकों की बदौलत जीवित है — धन्यवाद:

Patreon
Shlooom

Ko-Fi
kilgeist

Mac OS 9, TLS से मिलिए — नेटिव, किसी प्रॉक्सी की ज़रूरत नहीं।

परिचय वीडियो

वीडियो देखें

[!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 पर कैप्चर किया गया है। फ़िक्स-नंबर एनोटेशन इस रेपो के कमिट इतिहास से मेल खाते हैं।

Mac OS 9 पर JavaScript हैलो वर्ल्ड
v0.2: Mac OS 9 पर JavaScript
पहला वास्तविक दुनिया का JS-युक्त पेज। Duktape 2.7.0 ES5 लाइव मूल्यांकन कर रहा है: Math.sqrt, JSON, ES5 ऐरे विधियाँ।
CSS ट्रांसफ़ॉर्म rotate, scale, translate
fixes73: CSS ट्रांसफ़ॉर्म
नेटिव transform: rotate() / scale() / translate()। इंटीजर Q15 sin/cos टेबल, कोई FPU निर्भरता नहीं, QuickDraw पर मनमाने कोण।
CSS रेडियल ग्रेडिएंट
fixes74d: रेडियल ग्रेडिएंट
संकेंद्रित PaintOval स्टैक के माध्यम से 2-स्टॉप रेडियल ग्रेडिएंट। डिकोड पर 16 लेवल स्मियर किए गए। शेप + पोज़िशन कीवर्ड पार्स किए गए।
CSS एनिमेशन: wiggle, swing, धीमा spin
fixes77: CSS एनिमेशन
fixes73 रोटेशन के ऊपर लीनियर पिंग-पोंग एनिमेशन प्लेयर। विगल, स्विंग, और पूर्ण 0°→359° स्पिन।
Mac OS 9 पर पारदर्शिता के साथ PNG इमेज
fixes79b: PNG पारदर्शिता
QuickTime Graphics Importer NetSurf इमेज कंटेंट हैंडलर को फ़ीड कर रहा है। PNG + GIF + BMP, सभी वास्तविक पारदर्शिता के साथ।
CSS word-break और overflow-wrap
fixes136: word-break / overflow-wrap
word-break: break-all, keep-all, white-space: nowrap, लेगेसी word-wrap: break-word। URL-शैली आक्रामक रैपिंग।
CSS z-index स्टैकिंग कॉन्टेक्स्ट
fixes147: स्टैकिंग कॉन्टेक्स्ट
CSS 2.1 पेंटिंग क्रम। Opacity, ट्रांसफ़ॉर्म, और स्पष्ट z-index सभी नए स्टैकिंग कॉन्टेक्स्ट बनाते हैं, वास्तविक हार्डवेयर पर सही ढंग से पेंट किए गए।
CSS Grid कॉलम प्लेसमेंट
fixes151: CSS Grid कॉलम प्लेसमेंट
grid-column: span N, 1 / -1 फुल-रो हीरो, पोज़िशनल start / end, span + ऑटो-रैप। OS 9 पर वास्तविक Grid लेआउट।
MacSurf 1.0 home.macsurf.org रेंडर कर रहा है
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 ट्रस्ट एंकर बेक किए हुए।

आज क्या काम करता है

रेंडरिंग पाइपलाइन

  • पूर्ण NetSurf फ़ेच → पार्स → कैस्केड → लेआउट → प्लॉट
  • नेटिव libcss जिसमें var() रिज़ॉल्यूशन है
  • ऑफ़स्क्रीन GWorld बैक-बफ़र के साथ QuickDraw प्लॉटर

CSS — लेआउट में लगभग 150 प्रॉपर्टी उपयोग होती हैं

  • कस्टम प्रॉपर्टी और var()
  • Flex: justify-content, align-content, order
  • Grid V1 साथ ही grid-template-columns/rows, gap
  • border-radius, box-shadow, opacity
  • लीनियर और रेडियल ग्रेडिएंट
  • text-shadow, text-overflow: ellipsis
  • transform (rotate, translate, scale)
  • z-index स्टैकिंग कॉन्टेक्स्ट (CSS 2.1 पेंटिंग क्रम)
  • CSS काउंटर, व्यूपोर्ट यूनिट, aspect-ratio
  • sans, serif, monospace के लिए फ़ॉन्ट-फ़ैमिली उपनाम

पूर्ण CSS स्थिति →

JavaScript — Duktape 2.7.0, पूर्ण ES5

  • क्लोज़र, प्रोटोटाइप, रेगेक्स, JSON
  • Promises (पॉलीफ़िल), रिकर्ज़न, Mandelbrot
  • 233 MHz G3 पर ackermann(3,7) के लिए लगभग 6 सेकंड

इमेज — सभी पाँच फ़ॉर्मेट

  • वास्तविक प्रति-पिक्सेल अल्फा के साथ PNG (lodepng + CopyMask)
  • पैलेट पारदर्शिता के साथ GIF
  • JPEG, BMP, TIFF

नेटवर्किंग

  • Open Transport TCP, सादे गैर-InContext कॉल
  • HTTP/1.1 + chunked + keep-alive + 3xx फॉलो
  • कनेक्शन पूलिंग, 15-सेकंड नो-प्रोग्रेस टाइमआउट
  • macTLS (डिफ़ॉल्ट) या Go प्रॉक्सी (फ़ॉलबैक) के माध्यम से HTTPS

ब्राउज़र क्रोम

  • एड्रेस बार, बैक / फ़ॉरवर्ड / रीलोड / होम
  • स्टेटस बार, पेज-इन्फ़ो, मल्टी-विंडो
  • स्मूथ स्क्रॉल बार, कीबोर्ड स्क्रॉलिंग

डाउनलोड

नवीनतम 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, fetch, load / DOMContentLoaded इवेंट्स, साथ ही <details> / <summary> टॉगल। नए प्रोब सूट ने G3 iMac पर JS 19/19 pass, 0 fail स्कोर किया। डायग्नोस्टिक पेज लाइव: about:cache, about:memory, about:config, about:perf सभी वास्तविक काउंटर रेंडर करते हैं। View Source इनलाइन रेंडर होता है, Find-in-page एक वास्तविक Carbon डायलॉग खोलता है। पूर्ववर्ती v1.3.1 "Forward, refined" ने मल्टी-कर्व TLS 1.3 शिप किया; v1.3 "Forward" Classic Mac OS पर पहला नेटिव TLS 1.3 था; v1.2 "Sealed" ने एंट्रॉपी छेद बंद किया; v1.0 "Showcase" क्रोम-रीडिज़ाइन रिलीज़ था; v0.6.2 "Speed-Run" कोल्ड-लोड स्पीडअप था (mactrove.com 30+s → ~2-3s); पहला नंबरित अल्फ़ा v0.1a1 पर।

  • MacSurf.sit — v1.4 बाइनरी, चलाने के लिए तैयार। Mac OS 9.1+ पर CarbonLib 1.5+ के साथ एक्सपैंड करें और लॉन्च करें।
  • सोर्स से बिल्ड करना: रेपो क्लोन करें, फिर Mac की तरफ CodeWarrior 8 में 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-पक्ष की तेज़ सिंटैक्स जाँच के लिए करते हैं।

श्रेणियाँ