Lewati ke konten

Ringkasan Deno Desktop

Referensi: Deno Desktop

Sebuah build desktop mengambil server Deserve, route dan view yang sama yang berjalan di host, lalu membungkusnya dalam jendela native. deno desktop mengompilasi server beserta backend rendering menjadi satu bundle aplikasi, kemudian saat diluncurkan ia menjalankan server pada port loopback lokal dan mengarahkan webview ke sana. Jendela menampilkan halaman web biasa, halaman berbicara ke server lewat HTTP, dan server menjangkau disk serta OS melalui Deno.

Inilah gambaran yang perlu dipegang sepanjang seri ini:

DeserveDesktop.app (satu bundle)
├── webview            → merender halaman, menjalankan JS browser
└── deno + deserve     → router.serve() di 127.0.0.1:<port>
        routes/*       → handler GET, POST
        views/*        → template DVE

Frontend dan backend tinggal dalam proses yang sama dan file yang sama. Server hanya mengikat loopback, jadi tidak ada apa pun di luar mesin yang bisa menjangkaunya. Hasilnya terbaca seperti aplikasi web dari dalam dan aplikasi native dari luar.

deno desktop tersedia mulai Deno 2.9.0 dan ditandai eksperimental, jadi permukaan API bisa bergeser antar rilis.

Mengapa Deserve Cocok

Aplikasi desktop tetap butuh routing, view engine, penanganan request, dan jalur error. Deserve sudah menyediakan semua itu, jadi build desktop memakai ulang server tanpa perubahan. Router menyajikan halaman dan API, routing berbasis file memetakan endpoint, dan view engine merender HTML. Lapisan native duduk di samping server alih-alih menggantikan bagian mana pun.

Satu detail membentuk segalanya. Halaman dan sisi Deno berbicara lewat API HTTP lokal, transport yang sama yang akan dipakai sebuah browser, yang membuat kode server identik baik berjalan di host maupun di dalam jendela. Alasan di balik pilihan itu ada di Bindings dan Jembatan HTTP.

Kompatibilitas Fitur

Sebagian besar permukaan deno desktop bekerja lewat Deserve tanpa perubahan. Beberapa item membawa syarat, dan satu tidak cocok dengan framework sama sekali. Tabel ini adalah peta untuk halaman-halaman berikutnya:

AreaBekerja dengan DeserveCatatan
Penyajian HTTPYarouter.serve() mengikat port desktop dengan sendirinya
Rendering viewYactx.render() mengembalikan halaman seperti route mana pun
JendelaYaBrowserWindow mengendalikan jendela native
Menu, tray, dockYaMenu dan tray native duduk di samping server
DialogYaalert, confirm, prompt meresolusi secara native
NotifikasiBersyaratButuh bundle bertanda tangan, identifier stabil, peluncuran Finder
Auto-updateYaDeno.autoUpdate() mem-poll server rilis dari sisi Deno
Pelaporan errorYaMenangkap error tak tertangkap dan mengirim laporan JSON
BindingsTidakwin.bind() tidak bertahan pada jalur serve Deserve
DevToolsTerikat-backendTersedia pada backend CEF, bukan pada webview default

Urutan Membaca

Seri ini bergerak dari build pertama menuju distribusi, dan tiap halaman menautkan ke berikutnya:

Dirilis di bawah Lisensi MIT.