Existe-t-il un framework web en C++ qui soit similaire à Spring pour Java ? Je travaille actuellement sur une application qui est dans le domaine du web. Nos applications existantes sont toutes développées en C++, et nous recherchons un framework dont la courbe d'apprentissage est faible et qui offre des fonctionnalités intéressantes. Quelqu'un a-t-il déjà rencontré un tel cadre ? Merci de me le faire savoir.
Réponses
Trop de publicités?Si c'est l'injection de dépendances que vous recherchez ; l'injection de dépendances en C++ n'est pas vraiment pratiquée, car bien que vous puissiez injecter un pointeur dans une classe, il n'est pas facile de dire qui va le libérer. Il existe déjà un SO discussion ici .
Je pense que le projet opensource 'Drogon' est ce que vous recherchez. Drogon peut être trouvé dans github Voici le descriptif de Drogon :
Drogon est un cadre d'application HTTP basé sur C++14/14. Drogon peut être utilisé pour construire facilement divers types de programmes de serveurs d'applications Web en utilisant C++. La principale plate-forme d'application de Drogon est Linux, mais il prend également en charge Mac OS/UNIX. Ses principales caractéristiques sont les suivantes :
- Utilisez une librairie réseau d'E/S non bloquante basée sur epoll (kqueue sous MacOS/FreeBSD) pour fournir des E/S réseau à haute fréquence et haute performance ;
- Fournir un mode de programmation complètement asynchrone ;
- Supporte Http1.0/1.1 (côté serveur et côté client) ;
- Sur la base des modèles, un mécanisme de réflexion simple est mis en œuvre pour découpler complètement le cadre principal du programme, les contrôleurs et les vues.
- Prendre en charge les cookies et les sessions intégrées ;
- Prise en charge du rendu en arrière-plan, le contrôleur génère les données vers la vue pour générer la page Html, la vue est décrite par un fichier CSP de type "JSP", le code C++ est intégré à la page Html par la balise CSP, et l'outil de ligne de commande drogon génère automatiquement le fichier de code C++ pour la compilation ;
- Prise en charge du chargement dynamique des pages d'affichage (compilation et chargement dynamiques au moment de l'exécution) ;
- Fournir une solution d'acheminement pratique et flexible entre le chemin et le contrôleur ;
- Prise en charge des chaînes de filtres pour faciliter l'exécution de la logique unifiée (comme la vérification de la connexion, la vérification des contraintes de la méthode Http, etc.) avant les contrôleurs ;
- Supporte https (basé sur OpenSSL) ;
- Prise en charge de WebSocket (côté serveur et côté client) ;
- Prend en charge les demandes et les réponses au format JSON, ce qui est très convivial pour le développement d'applications Restful API ;
- Prise en charge du téléchargement et de l'envoi de fichiers ;
- Supporte la transmission de la compression gzip ;
- Supporter le pipelining ;
- Fournir un outil de ligne de commande léger, drogon_ctl, pour simplifier la création de diverses classes dans Drogon et la génération de code de vue ;
- Supporte la lecture et l'écriture asynchrones des bases de données (PostgreSQL et MySQL(MariaDB)) ;
- Prise en charge de la lecture et de l'écriture asynchrones de la base de données sqlite3 en fonction du pool de threads ;
- Prise en charge de l'architecture ARM ;
- Fournir une mise en œuvre pratique et légère de l'ORM qui prend en charge le mappage bidirectionnel régulier entre l'objet et la base de données ;
- Supporte les plugins qui peuvent être installés par le fichier de configuration au moment du chargement ;
- Supporter la POA avec des points de jonction intégrés.
Je viens de trouver ffead-cpp En parcourant des fils similaires, quelqu'un peut-il évaluer ce cadre ou savoir s'il s'agit d'un choix approprié ? Je pense que cela répond déjà à quelques-unes de mes questions. Pouvez-vous commenter ?