İoT backendləri və real-vaxt sistemləri quran Node.js tərtibatçıları üçün maraqlı xəbər var. mqttkit adlı yeni freymvork, MQTT ilə işləyərkən ənənəvi olaraq əl ilə yazılan təkrarlanan kodu minimuma endirməyi hədəfləyir. Layihənin arxasındakı fikir sadədir: HTTP üçün Express, Koa və ya Fastify nədirsə, MQTT üçün də mqttkit o olmaq istəyir.
Niyə belə bir freymvorka ehtiyac var?
MQTT brokerləri (Aedes, EMQX, Mosquitto) artıq əla işləyir – onlar qoşulma, abunəlik, nəşr, QoS, sessiya idarəsi və s. kimi aşağı səviyyəli protokol detallarını öhdəsinə götürür. Ancaq tətbiq qatında – yəni mesaj gəldikdə autentifikasiya, yoxlama, metrik toplama, səhv idarəsi kimi əməliyyatları yerinə yetirəndə – tərtibatçı hər dəfə eyni kodu yenidən yazmaq məcburiyyətində qalır. mqttkit məhz bu boşluğu doldurur.
Freymvork, Aedes brokeri üzərində qurulub və middleware pipeline, tip təhlükəsiz topic marşrutları, MQTT 5 request/response dəstəyi, həmçinin avtomatik AsyncAPI 3.0 sənədləşdirməsi təklif edir. Ən maraqlı tərəfi isə odur ki, sintaksis Elysia və ya Hono kimi müasir HTTP freymvorklarından tanış gəlir – use() ilə middleware əlavə etmək, .topic() ilə marşrutları təyin etmək və generic-lər vasitəsilə tip inferensiyası almaq mümkündür.
Əsas imkanlar
- Tip təhlükəsiz topic marşrutları: devices/:uid/events kimi nümunələrdə ctx.params.uid avtomatik olaraq tip alır.
- Payload yoxlaması: Zod, Valibot, ArkType kimi istənilən Standard Schema uyumlu kitabxana ilə işləyir.
- Avtorizasiya: Hər topic üçün nəşr və abunəlik icazələri deklarativ şəkildə təyin edilir.
- RPC dəstəyi: Correlation data, timeout, təkrar cəhd kimi mexanizmlər qutu şəklində gəlir.
- AsyncAPI sənədləri: Freymvork marşrutları avtomatik olaraq AsyncAPI 3.0 spesifikasiyasına çevirir.
Kimlər üçün?
mqttkit, İoT backendləri, cihaz telemetriyası, real-vaxt oyun serverləri və ya TypeScript ilə yazılmış MQTT əsaslı hər hansı bir tətbiq üçün idealdır. Lakin 100 min qoşulmadan çox yük gözləyən böyük infrastrukturlar üçün birbaşa EMQX və ya NanoMQ istifadə etmək daha məqsədəuyğundur – mqttkit tətbiq qatına fokuslanır, broker qatına deyil.
Layihə açıq mənbəli (MIT lisenziyası) olub, Bun və Node.js 20+ üçün nəzərdə tutulub. Sənədlər, nümunələr və GitHub reposu vasitəsilə töhfə vermək mümkündür.
Mənbə: Dev.to (https://dev.to/keypdev/why-doesnt-mqtt-have-its-own-express-introducing-mqttkit-11il)



