منصوبے کے بارے میں

SwiftTUI Web دو npm پیکیجز فراہم کرتا ہے جو SwiftTUI ایپس—ٹرمینل سیلز میں بنائی گئی SwiftUI سیمنٹکس—کو براؤزر میں لاتے ہیں۔ ایک بار App لکھیں اور وہی View ٹری، @State، اور @FocusState ایک ویب صفحے پر بھیجیں، جو Canvas یا DOM کے ذریعے سیمنٹک رسائی ٹری کے ساتھ رینڈر ہوتا ہے، بغیر دوبارہ لکھنے یا xterm.js جیسے ٹرمینل ایمولیٹر کے استعمال کے۔ ایک SwiftTUI ایپ wasm32-wasi پر کمپائل ہوتی ہے اور ایک ساختی raster سطح اسٹریم کرتی ہے۔ @swifttui/web پیکیج اس سطح کو DOM یا canvas انجنوں کے ذریعے صفحے میں پینٹ کرتا ہے اور ایک حقیقی ARIA رسائی ٹری ماؤنٹ کرتا ہے۔ ARIA ٹری ایک یک طرفہ سیمنٹک پیشکش پیش نظارہ ہے: پڑھنے کی ترتیب، نام، کردار، پوشیدہ حالت، اعلانات، اور رن ٹائم اصل فوکس پیش کیے جاتے ہیں، لیکن معاون اصل فوکس، ایکٹیویشن، ایڈجسٹمنٹ، اور ایڈیٹنگ SwiftTUI میں واپس نہیں جاتے۔ اس ریپوزٹری میں SwiftTUI کے پانچ میزبانوں میں سے دو شامل ہیں: ایک جامد WASI بنڈل اور ایک localhost WebHost۔ فریم ورک خود SwiftTUI/swift-tui میں رہتا ہے۔ یہ تقسیم بلڈ ٹائم Swift پروسیسز اور فائل سسٹم کے کام کو براؤزر کے لیے محفوظ رن ٹائم سے باہر رکھتی ہے، تاکہ کوئی بھی بنڈلر رن ٹائم درآمد کر سکے۔ پیکیجز: - @swifttui/web: براؤزر رن ٹائم—scene-manifest لوڈنگ، DOM + canvas رینڈرنگ، ARIA ماؤنٹنگ، WebSocket + WASI scene برجز۔ - @swifttui/build: بلڈ ٹولنگ—manifest جنریشن، Swift WASI بلڈز، wasm توثیق، اور swifttui-web CLI۔ تنصیب: دونوں پیکیجز npm پر ESM کے طور پر شائع ہوتے ہیں جس میں بنڈل شدہ TypeScript ڈیکلیریشنز شامل ہیں۔ Bun یا TypeScript ٹول چین کی ضرورت نہیں؛ ان میں کمپائل شدہ dist/ JavaScript اور ڈیکلیریشنز شامل ہیں۔ npm کے ذریعے یا GitHub ریلیز ٹاربالز سے انسٹال کریں۔ بنیادی استعمال: SwiftTUI ایپ کو WASI پر `npx swifttui-web build --package-path ./TerminalApp --app MyApp` کے ساتھ بلڈ کریں، پھر براؤزر رن ٹائم سے createWebHostApp اور createWasmSceneRuntimeFactory کا استعمال کرتے ہوئے نتیجے میں آنے والا manifest اور wasm ماؤنٹ کریں۔ WASI رن ٹائم کے لیے ضروری ہے کہ میزبان صفحہ Cross-Origin-Opener-Policy: same-origin اور Cross-Origin-Embedder-Policy: require-corp ہیڈرز فراہم کرے SharedArrayBuffer سے چلنے والے stdin کے لیے؛ ان کے بغیر canvas خالی رہتا ہے۔ حالت: بیٹا؛ عوامی API تبدیل ہو سکتی ہے۔ ایک لائیو ڈیمو https://swifttui.sh/webexample پر چلتا ہے۔ دستاویزات اور API حوالہ https://swifttui.sh/docs/documentation/ پر۔ دیگر میزبانوں میں ٹرمینل (ڈیفالٹ SwiftTUI درآمد)، نیٹو SwiftUI (swift-tui-swiftui)، اور Jetpack Compose (swift-tui-android) شامل ہیں۔ لائسنس: MIT۔