บล็อก

ข่าว บทเรียน และการวิเคราะห์เชิงลึกเกี่ยวกับการสร้างแอปเนทีฟด้วย Perry

performancellvmJSONGCservermilestone

ปรับแต่งทุกอย่าง: หนึ่งสัปดาห์, 68 รุ่น, และ JSON เร็วขึ้น 547 เท่า

Perry v0.5.13 → v0.5.80 ภายในเจ็ดวัน JSON.parse ปิดช่องว่าง 547 เท่ากับ Node mimalloc มาเป็น allocator หลัก มี inline cache, shape transition, typed Buffer slot, i32-native bitwise ops, scalar replacement และ native event loop ที่ทำให้เซิร์ฟเวอร์ Fastify และ WebSocket ทำงานต่อเนื่อง

compilersllvmcraneliftperformancemilestone

จาก Cranelift สู่ LLVM: Perry เร็วขึ้น 24 เท่าได้อย่างไร

การย้าย backend ของ Perry จาก Cranelift ไปยัง LLVM เสร็จสมบูรณ์แล้ว การเปลี่ยนครั้งแรกทำให้เบนช์มาร์กช้าลง 70 เท่า — จากนั้นการปรับแต่ง 6 รายการทำให้ Perry ชนะ Node.js 14/15 รายการ โดยเร็วกว่าสูงสุด 24.6 เท่า

tvOScross-compilationbillingWindowsmilestone

tvOS, คอมไพล์ข้าม iOS จาก Linux และ Perry Login

Perry v0.4.24: tvOS เป็นเป้าหมายการคอมไพล์ลำดับที่ 10, คอมไพล์ข้าม iOS และ macOS จาก Linux ผ่าน ld64.lld, perry login พร้อมการเรียกเก็บเงินตามการใช้งาน, ปรับปรุง UI บน Windows, การรับรอง macOS และ 120 commit ใน 5 วัน

threadingi18nwatchOScompilermilestone

Multi-Threading แท้จริง, i18n ตอนคอมไพล์ และ watchOS

Perry v0.4.0: เธรด OS จริงพร้อมความปลอดภัยตอนคอมไพล์, ระบบ i18n แบบไม่ยุ่งยากสำหรับกว่า 30 ภาษา, watchOS เป็นเป้าหมายการคอมไพล์ลำดับที่ 9, API เสียงและกล้อง และ pipeline คอมไพล์แบบขนาน

compilercross-compilationinfrastructuremilestone

คอมไพล์ข้ามแพลตฟอร์มไป Windows, Game Loop บน iOS และความเท่าเทียมของการทดสอบ 100%

103 commit ในหนึ่งสัปดาห์: คอมไพล์ข้ามแพลตฟอร์มไป Windows จาก Linux ผ่าน lld-link, รองรับ game loop บน iOS, การรายงานข้อผิดพลาด, pipeline การ build Hub สองขั้นตอน และคอมไพเลอร์ self-hosting ทำได้ 68/68 ความเท่าเทียมของการทดสอบแบบ deterministic

distributiondocumentationWidgetKitmilestone

Pipeline ครบวงจร: เอกสาร, การกระจาย และ WidgetKit

82 commit ในหนึ่งสัปดาห์: เว็บไซต์เอกสาร 49 หน้า, การเผยแพร่อัตโนมัติบน App Store และ Play Store, แพ็กเกจ Homebrew และ APT, ส่วนขยาย WidgetKit เนทีฟจาก TypeScript, วิดเจ็ตใหม่, โมดูล http/https และคอมไพเลอร์ LLVM แบบ self-hosting

ecosystemperry/uidatabasesinfrastructuremilestone

จากคอมไพเลอร์สู่ระบบนิเวศ: React, ฐานข้อมูล และ Cloud Build

Perry เติบโตจากคอมไพเลอร์เป็นระบบนิเวศที่สมบูรณ์ perry/ui เป็นแกนหลัก, ORM ที่เข้ากันได้กับ Prisma สำหรับ MySQL/PostgreSQL/SQLite, push notification สากล, build แบบกระจายพร้อมการเผยแพร่บน App Store และเลเยอร์ความเข้ากันได้กับ React — ทั้งหมดในหนึ่งสัปดาห์

UIcross-platformreleasemilestone

ทั้ง 6 แพลตฟอร์ม ฟีเจอร์ครบถ้วนเท่าเทียมกัน

วิดเจ็ต UI เนทีฟกว่า 20 ตัว, วิดเจ็ต Canvas, Table view, การแจ้งเตือนระบบ, การเข้าถึง keychain, รองรับหลายหน้าต่าง และฟีเจอร์ครบถ้วนเท่าเทียมกันบน macOS, iOS, iPadOS, Android, Linux และ Windows — ทั้งหมดจากโค้ดเบส TypeScript เดียว

architectureperformancecompiler

ระบบปลั๊กอินคือภาษีด้านประสิทธิภาพ

สถาปัตยกรรมปลั๊กอินแลกประสิทธิภาพกับความสามารถในการขยาย แต่ถ้าความสามารถในการขยายเกิดขึ้นตอนคอมไพล์แทนที่จะเป็นตอนรันไทม์ล่ะ? การประกอบตอนคอมไพล์ให้คุณทั้งสองอย่าง — ไม่มี overhead ยืดหยุ่นเต็มที่

compilerframeworksprogress

คอมไพล์ Hono, tRPC และ Strapi เป็นไบนารีเนทีฟ

ตอนนี้ Perry คอมไพล์เฟรมเวิร์ก TypeScript สำคัญสามตัว — Hono, tRPC และ Strapi — เป็นไฟล์ปฏิบัติการ ARM64 เนทีฟ คอมไพล์ได้ในไม่ถึงวินาที สร้างไบนารีขนาดไม่ถึง 2 MB และทำงานได้โดยไม่มีข้อผิดพลาด

tutorialshowcasePry

สร้าง Pry: โปรแกรมดู JSON เนทีฟใน TypeScript

คำแนะนำทีละขั้นตอนในการสร้าง Pry — โปรแกรมดู JSON เนทีฟที่คอมไพล์จาก TypeScript เป็นไบนารี ARM64 เนทีฟ ไม่ต้องใช้ runtime ไม่ต้องใช้ web view

architectureUIcross-platform

UI เนทีฟข้ามแพลตฟอร์มจาก TypeScript

Perry แมปโค้ดเบส TypeScript เดียวไปยัง AppKit, UIKit, Android Views, GTK4 และ Win32 ได้อย่างไร — ส่งมอบ UI เนทีฟอย่างแท้จริงบนทุกแพลตฟอร์ม

announcementcompilerTypeScript

แนะนำ Perry

Perry เป็นคอมไพเลอร์ TypeScript เนทีฟที่เขียนด้วย Rust ซึ่งคอมไพล์ TypeScript ของคุณโดยตรงเป็นไฟล์ปฏิบัติการแบบ standalone ไม่ต้องใช้ runtime ไม่ต้องใช้ Electron ไม่มีข้อประนีประนอม