Pistache C++: नई पीढ़ी का REST फ्रेमवर्क
Pistache एक आधुनिक, हल्की और हाई-परफॉर्मेंस C++ लाइब्रेरी है जो REST API बनाने के लिए बनाई गई है। इसे C++11/14/17 की क्षमताओं का उपयोग करके शुरू से डिजाइन किया गया है, जो डेवलपर्स को HTTP सर्वर और क्लाइंट बनाने के लिए एक साफ और सहज इंटरफेस प्रदान करता है। Boost.Asio जैसे भारी समाधानों के विपरीत, Pistache एक संक्षिप्त API प्रदान करता है जो C++ में वेब सर्विसेज बनाने की प्रक्रिया को Python या Node.js जितना आसान बना देता है, लेकिन साथ ही नेटिव कोड की पूरी शक्ति और प्रदर्शन को बरकरार रखता है।
Pistache की आवश्यकता क्यों है? माइक्रो-सर्विस आर्किटेक्चर और इंटरनेट ऑफ थिंग्स (IoT) के आधुनिक युग में, अक्सर हल्के, तेज़ और विश्वसनीय HTTP सर्वर बनाने की आवश्यकता होती है। C++ अपने प्रदर्शन के कारण ऐसे कार्यों के लिए आदर्श है, लेकिन परंपरागत रूप से C++ में HTTP सर्वर लिखना एक जटिल और समय लेने वाली प्रक्रिया थी। Pistache इस समस्या को हल करता है, रूटिंग, रिक्वेस्ट प्रोसेसिंग, पैरामीटर पार्सिंग, सेशन मैनेजमेंट और बहुत कुछ के लिए तैयार एब्स्ट्रैक्शन प्रदान करके। यह लाइब्रेरी प्रोडक्शन में REST API, वेबहुक, माइक्रोसर्विसेज और यहां तक कि अधिक जटिल नेटवर्क एप्लिकेशन के आधार के रूप में सक्रिय रूप से उपयोग की जाती है।
Pistache की मुख्य विशेषताओं में शामिल हैं: epoll (Linux) या kqueue (macOS) पर आधारित एसिंक्रोनस रिक्वेस्ट हैंडलिंग, HTTP/1.1 सपोर्ट, बिल्ट-इन क्वेरी पैरामीटर और JSON पार्सिंग (थर्ड-पार्टी लाइब्रेरी के माध्यम से), पथ पैरामीटर के साथ लचीली रूटिंग सिस्टम, स्मार्ट पॉइंटर्स के माध्यम से ऑटोमैटिक मेमोरी मैनेजमेंट, और पूर्ण थ्रेड-सेफ्टी। ये सब Pistache को उन प्रोजेक्ट्स के लिए एक बेहतरीन विकल्प बनाते हैं जहां डेवलपमेंट स्पीड और एक्जीक्यूशन स्पीड दोनों महत्वपूर्ण हैं।
Pistache इंस्टॉलेशन
Pistache pip या npm के माध्यम से इंस्टॉल नहीं होती, क्योंकि यह एक नेटिव C++ लाइब्रेरी है। इंस्टॉलेशन सिस्टम पैकेज मैनेजर या सोर्स कोड से बिल्ड करके किया जाता है।
Linux (Ubuntu/Debian)
# डिपेंडेंसी इंस्टॉल करें
sudo apt-get update
sudo apt-get install -y libpistache-dev cmake g++ libssl-dev
# इंस्टॉलेशन जांचें
dpkg -l | grep pistache
macOS (Homebrew)
brew install pistache
सोर्स कोड से बिल्ड करें (क्रॉस-प्लेटफॉर्म तरीका)
git clone https://github.com/pistacheio/pistache.git
cd pistache
mkdir build && cd build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
sudo make install
त्वरित शुरुआत: न्यूनतम सर्वर
चलिए एक सबसे सरल HTTP सर्वर बनाते हैं जो किसी भी GET रिक्वेस्ट पर "Hello, World!" का जवाब देता है।
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <iostream>
using namespace Pistache;
class HelloHandler : public Http::Handler {
public:
HTTP_PROTOTYPE(HelloHandler)
void onRequest(const Http::Request& request, Http::ResponseWriter writer) override {
writer.send(Http::Code::Ok, "Hello, World!\n");
}
};
int main() {
// पोर्ट 9080 पर एंडपॉइंट बनाएं
Address addr(Ipv4::any(), Port(9080));
auto opts = Http::Endpoint::options().threads(1);
Http::Endpoint server(addr);
server.init(opts);
server.setHandler(std::make_shared<HelloHandler>());
server.serve();
return 0;
}
कंपाइल करें: g++ -std=c++17 -lpistache -lpthread -o server server.cpp
सर्वर चलाएं और ब्राउज़र में http://localhost:9080 खोलें — आपको स्वागत संदेश दिखाई देगा।
Pistache के मुख्य क्लास और मेथड
आइए लाइब्रेरी के प्रमुख घटकों को उपयोग उदाहरणों के साथ समझते हैं।
1. Http::Endpoint — सर्वर का प्रवेश बिंदु
सिग्नेचर: Http::Endpoint(const Address& addr);
कार्य: निर्दिष्ट एड्रेस और पोर्ट से बंधा HTTP सर्वर बनाता है। सर्वर के जीवनचक्र का प्रबंधन करता है।