უკან დაბრუნება
Topcoat 0.9: Rust-ის ვებ-აპლიკაციებს კლიენტური სიგნალები და server push დაემატა
SiTech AI Team2 წთ. საკითხავი

Topcoat 0.9: Rust-ის ვებ-აპლიკაციებს კლიენტური სიგნალები და server push დაემატა

Tokio-მ Rust-ის full-stack ფრეიმვორკ Topcoat-ის 0.9 ვერსია გამოუშვა: დაემატა კლიენტური სიგნალები, სერვერიდან UI-ის ნაკადური განახლება და server push. პოსტის ავტორები კარლ ლერჩი და ჟულიენ შოლცი არიან.

2026 წლის 24 სექტემბერს Tokio-ს ბლოგზე გამოქვეყნდა სტატია Topcoat-ის შესახებ: ფრეიმვორკის გამოცხადებიდან ორ თვეში 0.9 ვერსია გამოვიდა. ტექსტის ავტორები კარლ ლერჩი და ჟულიენ შოლცი არიან.

Topcoat არის Rust-ის full-stack ფრეიმვორკი, რომელშიც ხედები, კომპონენტები, მეილერი, აქტივების პაიპლაინი და Toasty ORM შედის. მთელი მარკირება სერვერზე რენდერდება, ამიტომ კომპონენტები async შეიძლება იყოს და მონაცემთა ბაზას პირდაპირ მიმართავს.

სიგნალები და shard-ები WebAssembly-ს გარეშე

ინტერაქტიულობას სიგნალები უზრუნველყოფს: ეს მდგომარეობის ცვლადებია, რომლებიც სერვერზე ინიციალიზდება, მაგრამ ბრაუზერში ცხოვრობს. მათთან ერთად გამოიყენება runtime გამოსახულებები view! მაკროს შიგნით: ეს Rust-ის სრულად ტიპიზირებული ქვესიმრავლეა, რომელსაც Topcoat პირველი რენდერისთვის სერვერზე აფასებს და ამავე დროს JavaScript-ის კოდში გადაჰყავს. ამიტომ პანელის გახსნას სერვერთან მიმართვა და WebAssembly არ სჭირდება.

როცა ინტერფეისის ნაწილს ახალი მონაცემები სჭირდება, კომპონენტი shard-ად მოინიშნება: როგორც კი მისი არგუმენტი იცვლება, ბრაუზერი ახალ მნიშვნელობას აგზავნის, სერვერი კომპონენტს ხელახლა რენდერს და განახლებულ HTML-ს აბრუნებს, რომელიც ადგილზე ჩანაცვლდება. 0.8 ვერსიიდან shard-ს რენდერის დროს სიგნალის წაკითხვაც შეუძლია: მაშინ Topcoat ხელახლა მხოლოდ იმ ნაწილებს იღებს, რომლებიც ამ სიდიდეს თვალს ადევნებს. განახლებული ელემენტები მთლიანად არ იცვლება, არამედ მორფინგით ახლდება.

ნაკადური განახლებები და server push 0.9-ში

სერვერიდან წამოსული ცვლილებებისთვის განკუთვნილია live! და emit! მაკროსები: live! ხედს ერთ პასუხში UI-ის შეუზღუდავი რაოდენობის განახლების გაგზავნა შეუძლია, ამიტომ ჯერ ჩატვირთვის ინდიკატორი იგზავნება, მონაცემების მოსვლის შემდეგ კი მის ადგილას რეალური კონტენტი ჩნდება.

0.9 ვერსიაში server push დაემატა: ბრაუზერს შეუძლია WebSocket კავშირი გახსნას და UI-ის ცვლილებებს გრძელვადიანი კავშირით გამოიწეროს; ავტორები მაგალითად ჩატის კომპონენტს მოჰყავთ.

Toasty: ახალი მაკროსები, დოკუმენტური ველები და პოლიმორფული კავშირები

პოსტი Toasty-საც ეხება, Topcoat-ის ORM-ს, რომელიც 2026 წლის აპრილიდან გამოსაყენებელია. ახალი update! მაკროსი ერთ SQL განაცხადს აგენერირებს: ის ველებს ანახლებს და მთვლელებს ზრდის ჩანაწერის წინასწარ ჩატვირთვის გარეშე. დოკუმენტური ველები JSON სვეტებს პირვეკლასიან მხარდაჭერას აძლევს და ფილტრებს PostgreSQL-ის JSONB შესაძლებლობებზე გადაიყვანს; პოლიმორფული კავშირები კი Rust-ის enum-ებისა და ჩვეულებრივი კავშირების კომბინაციით გამოიხატება.

რატომ არსებობს ეს ფრეიმვორკი

ლერჩი, Ruby on Rails-ის ბირთვული გუნდის ყოფილი წევრი, პროექტს იმ ეპოქის პროდუქტიულობის Rust-ში გადმოტანის მცდელობად აღწერს: ვებ-აპლიკაცია რამდენიმე ათეულ მეგაბაიტ მეხსიერებაში მუშაობს. მისი თქმით, კარგად განსაზღვრული კონვენციები და აბსტრაქციები მოდელს უფრო სწრაფად, ნაკლები ტოკენითა და შეცდომით მუშაობაში ეხმარება. Topcoat და Toasty ღია კოდის პროექტებია GitHub-ზე.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.