इस प्रोजेक्ट के बारे में
# wolfMQTT
wolfMQTT एक संक्षिप्त, कुशल MQTT क्लाइंट कार्यान्वयन है जो C में लिखा गया है, जिसे एम्बेडेड सिस्टम और सीमित संसाधन वाले वातावरण के लिए डिज़ाइन किया गया है। यह मजबूत TLS समर्थन प्रदान करने के लिए wolfSSL लाइब्रेरी के साथ एकीकृत होता है, जिसमें TLS 1.3 भी शामिल है।
## मुख्य विशेषताएँ
- **MQTT v3.1.1 और v5.0 समर्थन**: QoS 0-2, Last Will and Testament (LWT), और कई v5 सुविधाओं जैसे AUTH पैकेट, उपयोगकर्ता गुण, सर्वर डिस्कनेक्ट, कारण कोड, और टॉपिक उपनामों के लिए पूर्ण विनिर्देश समर्थन।
- **MQTT-SN समर्थन**: कम बैंडविड्थ वाले सेंसर नेटवर्क के लिए, OASIS MQTT-SN v1.2 विनिर्देश पर आधारित, UDP पर संचालित।
- **Post-Quantum समर्थन के साथ TLS 1.3**: सुरक्षित संचार के लिए ML-KEM-768 और ML-DSA-65 जैसे post-quantum एल्गोरिदम का समर्थन करने के लिए wolfSSL के साथ बनाया जा सकता है।
- **हल्का ब्रोकर**: एम्बेडेड वातावरण के लिए उपयुक्त एक सरल MQTT ब्रोकर शामिल है, जो वैकल्पिक TLS और WebSocket ट्रांसपोर्ट के साथ v3.1.1 और v5.0 दोनों क्लाइंट का समर्थन करता है।
- **WebSocket समर्थन**: मानक या सुरक्षित WebSockets के माध्यम से MQTT ब्रोकर से कनेक्ट करें।
- **बहु-प्लेटफ़ॉर्म**: Linux, macOS, Windows (Visual Studio), MinGW, Zephyr RTOS, और Arduino पर बनाया जा सकता है।
- **नॉन-ब्लॉकिंग और मल्टीथ्रेडेड संचालन**: बेहतर समवर्तीता और प्रदर्शन के लिए वैकल्पिक सुविधाएँ।
## बिल्डिंग
### Mac/Linux/Unix
1. `./autogen.sh` (यदि GitHub से क्लोन किया गया है)
2. `./configure` (विकल्पों के लिए `./configure --help` देखें)
3. `make`
4. `sudo make install`
### Windows Visual Studio
पहले wolfSSL बनाएँ, फिर `wolfmqtt.sln` समाधान खोलें और उसी आर्किटेक्चर के साथ बनाएँ।
### CMake
```
mkdir build && cd build
cmake .. -DWITH_WOLFSSL=/prefix/to/wolfssl/install/
cmake --build .
```
### vcpkg
`./vcpkg install wolfmqtt` के माध्यम से इंस्टॉल करें।
## आर्किटेक्चर
लाइब्रेरी तीन मुख्य घटकों से बनी है:
1. **mqtt_client**: MQTT क्लाइंट संचालन (कनेक्ट, प्रकाशित, सदस्यता, आदि) के लिए शीर्ष-स्तरीय एप्लिकेशन इंटरफेस।
2. **mqtt_packet**: सभी MQTT पैकेट प्रकारों के लिए पैकेट एन्कोडिंग/डिकोडिंग को संभालता है।
3. **mqtt_socket**: ट्रांसपोर्ट लेयर जो वैकल्पिक रूप से TLS को लपेटती है और प्लेटफ़ॉर्म-विशिष्ट नेटवर्क कॉलबैक का उपयोग करती है।
## उदाहरण
- **mqttclient**: कई MQTT v5 सुविधाओं के साथ सामान्य क्लाइंट उदाहरण।
- **mqttsimple**: मानक BSD सॉकेट का उपयोग करने वाला स्टैंडअलोन क्लाइंट।
- **nbclient**: नॉन-ब्लॉकिंग I/O उदाहरण।
- **firmware**: हस्ताक्षरित छवि प्रकाशन और सत्यापन के साथ फर्मवेयर अपडेट उदाहरण।
- **Azure IoT Hub**: Azure IoT Hub से कनेक्ट करने के लिए उदाहरण।
- **AWS IoT**: TLS क्लाइंट प्रमाणपत्र प्रमाणीकरण के साथ AWS IoT के लिए उदाहरण।
- **Watson IoT**: IBM Watson IoT Platform के लिए उदाहरण।
- **sn-client**: सेंसर नेटवर्क के लिए MQTT-SN क्लाइंट उदाहरण।
- **multithread**: मल्टीथ्रेडेड प्रकाशन और संदेश प्रतीक्षा प्रदर्शित करता है।
- **pub-sub**: त्वरित परीक्षण के लिए सरल प्रकाशन और सदस्यता उदाहरण।
- **websocket**: WebSocket क्लाइंट उदाहरण।
## ब्रोकर संगतता
Adafruit IO, AWS, Azure, flespi, HiveMQ, IBM WIoTP, Mosquitto, Paho MQTT-SN Gateway, VerneMQ, और EMQX के साथ परीक्षण किया गया।
## Post-Quantum MQTT समर्थन
`--enable-dilithium --enable-mlkem` के साथ wolfSSL बनाएँ, फिर wolfMQTT सामान्य रूप से बनाएँ। post-quantum समूह निर्दिष्ट करने के लिए `-Q` विकल्प के साथ `mqttclient` उदाहरण का उपयोग करें (उदाहरण के लिए, `SecP384r1MLKEM768`)।
## WebSocket समर्थन
`--enable-websocket` के साथ बनाएँ और `libwebsockets` इंस्टॉल करें। उदाहरण WebSockets के माध्यम से ब्रोकर से कनेक्ट होता है, वैकल्पिक TLS और पारस्परिक प्रमाणीकरण के साथ।
## ब्रोकर
हल्का MQTT ब्रोकर शामिल करने के लिए `--enable-broker` के साथ बनाएँ। पूर्ण विवरण के लिए `BROKER.md` देखें।
## अतिरिक्त विकल्प
- लॉगिंग के लिए `--enable-debug` या `--enable-debug=verbose`।
- नॉन-ब्लॉकिंग I/O के लिए `--enable-nonblock`।
- मल्टीथ्रेडिंग के लिए `--enable-mt`।
- MQTT v5 समर्थन के लिए `--enable-v5`।
- MQTT-SN समर्थन के लिए `--enable-sn`।
- बैकएंड के रूप में libcurl के easy socket इंटरफेस का उपयोग करने के लिए `--enable-curl`।
- मल्टीथ्रेडिंग और नॉनब्लॉकिंग के साथ तनाव परीक्षण के लिए `--enable-stress`।
अधिक विवरण के लिए, [wolfMQTT Manual](https://www.wolfssl.com/documentation/manuals/wolfmqtt/wolfMQTT-Manual.pdf) देखें।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.