برنامه نویسی

Rust Tauri (الهام گرفته از Electron) 1.3: شروع به ساخت برنامه ها

خلاصه

Tauri یک سازنده برنامه «برای استقرار چند پلتفرمی» است که از Electron بر اساس Node.js و فناوری وب الهام گرفته شده است.

این زبان به زبان Rust (rustlang)، یک زبان برنامه نویسی همه منظوره، با هدف عملکرد، قابلیت اطمینان و بهره وری نوشته شده است.

یکی از جنبه های خوب Tauri اندازه باندل آن است. “با استفاده از رندر وب بومی سیستم عامل”، اندازه برنامه ها زمانی که با بهینه سازی ساخته می شوند می توانند بسیار کوچک باشند.
علاوه بر این، انتظارات بیشتری در مورد امنیت، عملکرد، پلتفرم متقابل و استقلال از فریم ورک های فرانت اند وجود دارد.

این پست نحوه نصب آن و ایجاد اولین برنامه با آن را نشان می دهد.

محیط

آموزش

Rust را نصب کنید

نصب rustup، نصب کننده زنجیره ابزار، (با pacman -Sy rustup) و اجرا:

$ rustup default stable
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در نهایت به صورت زیر چاپ شد:

info: using existing install for 'stable-x86_64-unknown-linux-gnu'
info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'

  stable-x86_64-unknown-linux-gnu unchanged - rustc 1.69.0 (84c898d65 2023-04-16)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

علاوه بر این، زمانی که نسخه قدیمی‌تری دارید، ممکن است مجبور شوید آن را به روز کنید rustup update.

کلاینت Tauri را نصب کنید

اجرا کن:

$ cargo install tauri-cli
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی این بود:

    Updating crates.io index
  Downloaded tauri-cli v1.3.0
  Downloaded 1 crate (1.2 MB) in 10.18s
  Installing tauri-cli v1.3.0
  (...)
  Finished release [optimized] target(s) in 17m 08s
  Installing /(...)/.cargo/bin/cargo-tauri
   Installed package `tauri-cli v1.3.0` (executable `cargo-tauri`)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برای ایجاد پروژه های Tauri فایل اجرایی را نصب کنید

$ cargo install create-tauri-app
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی این بود:

    Updating crates.io index
  Downloaded create-tauri-app v3.4.0
  (...)
  Compiling create-tauri-app v3.4.0
    Finished release [optimized] target(s) in 23.91s
  Installing /(...)/.cargo/bin/cargo-create-tauri-app
   Installed package `create-tauri-app v3.4.0` (executable `cargo-create-tauri-app`)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اولین پروژه ایجاد کنید

$ cargo create-tauri-app tauri-example
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

از شما پرسیده می شود:

? Choose which language to use for your frontend ›
❯ TypeScript / JavaScript  (pnpm, yarn, npm)
❯ Rust  (cargo)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مانند بالا، گزینه ها عبارتند از:

  • TypeScript (با pnpm / نخ / npm)
  • زنگ زدگی (با محموله).

من Rust را انتخاب کردم.

سپس از شما پرسیده می شود:

? Choose your UI template ›
❯ Vanilla
❯ Yew  (https://yew.rs/)
❯ Leptos  (https://github.com/leptosrs/leptos)
❯ Sycamore  (https://sycamorers.netlify.app/)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مانند بالا، گزینه ها عبارتند از:

من وانیل را برای سادگی این آموزش انتخاب کردم.

بقیه نامزدهای قوی دیگری هستند که برای WebAssembly مناسب هستند.

خروجی این بود:

Template created! To get started run:
  cd tauri-example
  cargo tauri dev
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

آماده سازی را تأیید کنید

وارد:

$ cd tauri-example
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

آنچه تولید می شود

باید وجود داشته باشد:

$ ls
README.md  src/  src-tauri/
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در بالا، src دارای دارایی های رابط کاربری front-end مانند این است:

$ ls src
assets/  index.html  main.js  style.css
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اجرای آزمایشی

$ cargo tauri dev
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی این بود:

        Info Watching /(...)/tauri-example/src-tauri for changes...
    Updating crates.io index
   (...)
   Compiling webkit2gtk v0.18.2
    Finished dev [unoptimized + debuginfo] target(s) in 1m 57s
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس خواهید دید:

tauri-first-view

زیبا به نظر می رسد. خوب، کافی نیست، زیرا آنچه نشان داده می شود چیزی بیش از حداقل نمای پیش فرض Tauri نیست.

برای خروج روی “x” در بالای سمت راست پنجره کلیک کنید (یا Ctrl + c را وارد کنید).

دارایی های UI سفارشی ایجاد کنید

دایرکتوری را آماده کنید

برای ایجاد دایرکتوری برای رابط کاربری سفارشی خود اجرا کنید:

$ mkdir ui
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حالا باید وجود داشته باشد:

$ ls
README.md  src/  src-tauri/  ui/
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اولین دیدگاه خود را بنویسید

$ nvim ui/index.html
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پسندیدن:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1>Welcome from Tauri!</h1>
  </body>
</html>
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

البته ممکن است به روش خودتان راحت اینجا بنویسید.

بازنویسی قالب Tauri

بازنویسی خواهیم کرد src-tauri، بخصوص src-tauri/tauri.conf.json.
اجرا کن:

$ cargo tauri init --force
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به صورت زیر از شما سوال می شود.
دو سوال اول در مورد نام برنامه و عنوان آن است.

? What is your app name?
tauri-example
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

? What should the window title be?
Tauri Example
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس، شما باید مشخص کنید ../ui در سوالات زیر:

? Where are your web assets (HTML/CSS/JS) located, relative to the "<current dir>/src-tauri/tauri.conf
? Where are your web assets (HTML/CSS/JS) located, relative to the "<current dir>/src-tauri/tauri.conf.json" file that will be created?
../ui
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

? What is the url of your dev server?
../ui
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هدف در راه است!
در دو سوال آخر جای خالی بگذارید، زیرا ما در این لحظه از TypeScript استفاده نمی کنیم.

? What is your frontend dev command?

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

? What is your frontend build command?

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

انجام شده.

برای توسعه بدوید

$ cargo tauri dev
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خواهید دید:

گاوهای توسعه دهنده

به عنوان برنامه بسازید

بعد، بیایید اجرا کنیم build:

$ cargo tauri build
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

شاید برای اولین بار مانند زیر شکست بخورید:

       Error You must change the bundle identifier in `tauri.conf.json > tauri > bundle > identifier`. The default value `com.tauri.dev` is not allowed as it must be unique across applications.
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حتی اگر بخواهید مستقیماً باینری را اجرا کنید، باید شکست بخورید:

$ ./src-tauri/target/debug/tauri-example
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تاوری-ساخت-شکست

برای خروج Ctrl + c را وارد کنید.

خب چرا؟ این به دلیل شناسه دامنه است.

در نهایت ویرایش کنید تا با موفقیت ساخته شود:

$ nvim src-tauri/tauri.conf.json
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پسندیدن

-     "identifier": "com.tauri.dev",
+     "identifier": "localhost",
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس اجرا کنید

$ cargo tauri build
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی این بود:

   (...)
   Compiling webkit2gtk v0.18.2
    Finished release [optimized] target(s) in 2m 06s
    Bundling tauri-example_0.1.0_amd64.deb (/(...)/tauri-example/src-tauri/target/release/bundle/deb/tauri-example_0.1.0_amd64.deb)
    Bundling tauri-example_0.1.0_amd64.AppImage (/(...)/tauri-example/src-tauri/target/release/bundle/appimage/tauri-example_0.1.0_amd64.AppImage)
    Finished 2 bundles at:
        /(...)/tauri-example/src-tauri/target/release/bundle/deb/tauri-example_0.1.0_amd64.deb
        /(...)/tauri-example/src-tauri/target/release/bundle/appimage/tauri-example_0.1.0_amd64.AppImage
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

اکنون می توانید اولین برنامه Tauri خود را که برای پلتفرم خود بهینه شده است اجرا کنید.

$ ./src-tauri/target/release/tauri-example
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تاوری-ساخت-موفقیت

علاوه بر این، AppImage نیز در دسترس است:

$ ./src-tauri/target/release/bundle/appimage/tauri-example_0.1.0_amd64.AppImage
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اندازه فایل اجرایی، tauri-example (که در src-tauri/target/release/)، فقط 9.1 مگابایت است. فوق العاده است 🙂

بسته نرم افزاری AppImage، tauri-example_0.1.0_amd64.AppImage (که در src-tauri/target/release/bundle/appimage/) – “برنامه های لینوکس که در هر جایی اجرا می شوند” 120.4 مگابایت است.

برنامه های ساخت مبارک!!!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا