Dasturlash

Perry: TypeScript’dan bir bosqichda native ilovalar yaratish

30-may, 2026, 08:0214 ko'rish3 daqiqa o'qish
Perry: TypeScript’dan bir bosqichda native ilovalar yaratish

Perry — bu yangi avlod dasturlash vositasi bo‘lib, TypeScript kodini to‘g‘ridan‑to‘g‘ri native (asosiy) ilovalarga kompilyatsiya qiladi. SWC parseri va LLVM kod generatori yordamida yaratilgan bu platforma, macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly hamda veb‑brauzerda ishlashga mo‘ljallangan. Natijada, runtime (Node.js, V8 yoki Electron) talab qilmaydigan, 2‑5 MB o‘lchamdagi mustaqil binarlarga ega bo‘lasiz.

Perry nima uchun kerak?

  • Runtime talab qilmaydi — birgina bajariladigan fayl, qo‘shimcha kutubxonalar yoki paket menejerlari kerak emas.
  • Tez kompilyatsiya — SWC TypeScriptni tezda parse qiladi, LLVM esa optimallashtirilgan mashina kodini yaratadi. Oraliq JavaScript bosqichi yo‘q.
  • Kichik hajm — odatdagi Node.js ilovalari 80 MB ga yaqin bo‘lsa, Perry ilovalari odatda 2‑5 MB atrofida bo‘ladi.
  • Deterministik qurilish — bir xil manba koddan bir xil binar olinadi, bu CI/CD jarayonlarini soddalashtiradi.
  • Keng standart kutubxonafs, path, crypto, os, Buffer, child_process kabi Node.js APIlari native darajada amalga oshirilgan.
  • V8 runtime opsiyasi — agar to‘liq JavaScript npm paketlari kerak bo‘lsa, V8 flagi yoqib, ekotizimga moslashish mumkin.

Platformalar va UI widgetlari

Perry 25+ native UI komponentini qo‘llab‑quvvatlaydi: tugmalar, matn maydonlari, jadval, canvas, QR‑kod, xavfsiz kirish maydonlari va boshqalar. Har bir komponent mos platformaning o‘z widgetiga (macOS – AppKit, Linux – GTK4, Windows – Win32, iOS/tvOS/watchOS – UIKit/SwiftUI, Android – JNI) tarjima qilinadi.

// hello.tsconst greeting = "Hello, World!";console.log(greeting); // Compiles to ~2MB native executable// No runtime needed!

Kompilyatsiya jarayoni

$ perry compile main.ts
Compiling main.ts...
✓ Compiled executable: main (2.3 MB)
$ ./main
Hello, World!

Yuqoridagi misolda main.ts fayli bir necha soniya ichida main nomli bajariladigan faylga aylanadi. Bu fayl har qanday Linux, macOS yoki Windows tizimida alohida o‘rnatilmasdan ishlaydi.

Ko‘p ipli ishlash va i18n

Perry real operatsion tizim iplarini qo‘llab‑quvvatlaydi: parallelMap, parallelFilter, spawn funksiyalari yordamida paralel hisoblashlarni bajarish mumkin. Shuningdek, compile‑time i18n xususiyati bilan 30+ til uchun matnlar avtomatik tarzda chiqariladi, tarjimalar binarga qattiq kodlangan bo‘lib, runtime izlash vaqtini deyarli yo‘q qiladi.

Taqqoslash: Perry vs Node.js vs Bun

O‘lchamPerryNode.jsBun
Binary size2‑5 MB~80 MB~90 MB
Startup time~1 ms~30 ms~10 ms
Runtime dependenciesYo‘qNode.jsBun
Memory overheadMinimalV8 + GCJSC + GC

Natijada, Perry yuqori samaradorlik, kichik hajm va tez ishga tushish vaqtini ta'minlaydi, bu ayniqsa mobil va IoT qurilmalarida muhim.

Qanday boshlash mumkin?

# Homebrew orqali o‘rnatish (macOS)
$ brew tap PerryTS/perry
$ brew install perry

# Windows yoki Linux uchun prebuilt binary yuklab olish
# https://github.com/perryts/perry/releases

O‘rnatilgandan so‘ng, perry compile myapp.ts buyrug‘i bilan ilovani yaratish mumkin. V8 runtime kerak bo‘lsa, --enable-js-runtime flagini qo‘shing.

Kelajakda nimalar kutish mumkin?

Perry jamoasi hozirda WebAssembly va browser‑native rejimlarini yanada takomillashtirish, hamda yangi UI widgetlarini qo‘shish ustida ishlamoqda. Open‑source loyihalar uchun bepul, korporativ jamoalar uchun esa pullik reja mavjud.

Umuman olganda, Perry TypeScript dasturchilariga bir kod bazasidan bir necha platformada native ilovalar yaratish imkonini beradi, bu esa ishlab chiqish vaqtini qisqartiradi, xarajatlarni kamaytiradi va foydalanuvchi tajribasini yaxshilaydi.

Manba: Hacker News
#TypeScript #native ilova #Perry #SWC #LLVM
Telegram da muhokama qilish