Վերադառնալ
Topcoat 0.9-ը Rust վեբ հավելվածներին բերեց կլիենտային ազդանշաններ և server push
SiTech AI Team2 წთ. საკითხავი

Topcoat 0.9-ը Rust վեբ հավելվածներին բերեց կլիենտային ազդանշաններ և server push

Tokio-ն հրապարակել է Topcoat full-stack Rust շրջանակի մասին գրառում՝ հայտարարումից երկու ամիս անց, և թողարկել 0.9 տարբերակը։ Այն ավելացնում է կլիենտային ազդանշաններ, ինտերֆեյսի հոսքային թարմացումներ և server push՝ WebSocket-ի միջոցով։

2026 թվականի սեպտեմբերի 24-ին Tokio-ն բլոգում հրապարակեց գրառում Topcoat-ի մասին՝ շրջանակի հայտարարումից երկու ամիս անց թողարկվեց 0.9 տարբերակը։ Հեղինակներն են Կարլ Լերչը և Ժյուլիեն Շոլցը։

Topcoat-ը միավորում է տեսքերը, կոմպոնենտները, փոստարկիչները, ռեսուրսների խողովակաշարը և Toasty կոչվող ORM-ը, իսկ ամբողջ մարկափը ռենդերվում է սերվերում, ուստի կոմպոնենտները կարող են ասինխրոն լինել և ուղղակիորեն դիմել տվյալների բազային՝ առանց առանձին API շերտի։

Կլիենտային ազդանշաններ և shard-եր՝ առանց WebAssembly-ի

Ինտերակտիվությունը հենվում է ազդանշանների վրա՝ վիճակի փոփոխականներ, որոնք սկզբնավորվում են սերվերում, բայց ապրում են դիտարկիչում, ինչպես նաև view! մակրոսի ներսում գրված runtime արտահայտությունների վրա։ Դրանք Rust-ի տիպավորված ենթաբազմություն են, որը Topcoat-ը գնահատում է սերվերում առաջին ռենդերի համար և միաժամանակ կոմպիլյացնում JavaScript-ի, ուստի պանելի բացում-փակումը ոչ սերվերի դիմում է պահանջում, ոչ WebAssembly։

Երբ ինտերֆեյսի մի մասին թարմ տվյալներ են պետք, կոմպոնենտը նշում են որպես shard՝ հենց նրա արգումենտը փոխվում է, դիտարկիչը նոր արժեքն ուղարկում է սերվերին, սերվերը նորից ռենդերում է կոմպոնենտը և վերադարձնում թարմացված HTML, որը տեղում փոխարինվում է։ 0.8 տարբերակից shard-ը կարող է ռենդերի ընթացքում կարդալ ազդանշանը, և այդ դեպքում Topcoat-ը վերաբեռնում է միայն այն հատվածները, որոնք հետևում են այդ արժեքին։ Թարմացվող տարրերը չեն փոխարինվում ամբողջությամբ, այլ ենթարկվում են morphing-ի։

Հոսքային թարմացումներ և server push 0.9-ում

Սերվերից եկող թարմացումների համար նախատեսված են live! և emit! մակրոսները. live! տեսքը մեկ պատասխանի մեջ կարող է ուղարկել ինտերֆեյսի անսահմանափակ թվով թարմացումներ, այսինքն՝ նախ ուղարկվում է բեռնման ինդիկատորը, իսկ հետո նրա տեղը զբաղեցնում է իրական բովանդակությունը։

0.9 տարբերակը ավելացնում է server push՝ դիտարկիչը բացում է WebSocket կապ և երկարատև կապով բաժանորդագրվում ինտերֆեյսի փոփոխություններին՝ ինչպես հեղինակների չաթի կոմպոնենտում։

Toasty՝ նոր մակրոսներ, դոկումենտային դաշտեր և պոլիմորֆ կապեր

Գրառումն անդրադառնում է նաև Toasty ORM-ին, որը հասանելի է 2026 թվականի ապրիլից։ Նոր update! մակրոսը մեկ SQL հայտարարություն է գեներացնում, որը թարմացնում է դաշտերն ու ավելացնում հաշվիչները՝ առանց տողը նախապես բեռնելու։ Դոկումենտային դաշտերը լիարժեք աջակցում են JSON սյունակներին և ֆիլտրերը թարգմանում PostgreSQL-ի JSONB հարցումների, իսկ պոլիմորֆ կապերը արտահայտվում են Rust-ի enum-ների ու սովորական կապերի համադրությամբ։

Ինչու է այս շրջանակը գոյություն ունի

Լերչը, Ruby on Rails-ի հիմնական թիմի նախկին անդամ, նախագիծը ներկայացնում է որպես այդ դարաշրջանի արտադրողականությունը Rust տեղափոխելու փորձ. վեբ հավելվածը կարող է աշխատել մի քանի տասնյակ մեգաբայթ հիշողությամբ։ Նրա փաստարկը կապված է AI-ով աջակցվող ծրագրավորման հետ. լավ սահմանված կոնվենցիաներն ու աբստրակցիաները օգնում են մոդելին աշխատել ավելի արագ ու քիչ սխալներով։ Topcoat-ը և Toasty-ն բաց կոդով են GitHub-ում։

SSiTech

SiTech — AI-ով հզորացված վեբ մշակում

Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։