REPLed est un modèle de programmation complet et cohérent pour la création d'applications qui nécessitent une communication transparente et sécurisée par rapport à HTTP, avec la possibilité de modéliser une gamme de processus métier, conçue pour cibler les environnements de production mobiles, tablettes, ordinateurs de bureau et intégrés.
Cela s'apparente à l'intégration de Nginx dans la gamme de produits de vos entreprises. - Architecte de solutions, technologie Bellrock
| Fonctionnalité | Description |
|---|---|
| Sockets websockets | Canaux de communication complexe complexe sur une seule connexion TCP. |
| Événements de serveur | Les événements envoyés par serveur permettent un streaming efficace de serveur à client de données d'événements textuelles - EG, notifications ou mises à jour en temps réel générées sur le serveur. |
| Comète | Modèle de sondage long pour permettre des demandes HTTP à longue date pour pousser les données du serveur vers le client. |
| SSL / TLS | Sécurisé sur la communication avec fil vous permettant de transmettre des données privées en ligne. |
| Gestion de session | Créez une logique de persistance et de gestion de session HTTP personnalisée. |
| Pipeline http | Une technique permettant d'envoyer plusieurs demandes HTTP sur une seule connexion TCP sans attendre les réponses correspondantes. |
| Paramètres de chemin | Annoter les URI avec des paramètres de chemin personnalisés tels que les clés de ressource, les révisions, etc ... |
| Paramètres de requête | Analyse des paramètres de requête automatisée. |
| Filtres en tête | Filtrez les demandes HTTP entrantes par les en-têtes. |
| Enregistrement | Personnalisez comment et où les entrées de journal sont créées. |
| Ressources de plusieurs chemins | Donnez plusieurs chemins de ressources pour une amélioration de la lisibilité. |
| Méthodes personnalisables | Ajoutez vos propres méthodes HTTP personnalisées. |
| Compression | Adaptabilité pour aborder toute forme de compression gzip, dégonfler, etc ... |
| Codage | Adaptabilité pour aborder toute forme de codage UTF-32, ASCII, etc ... |
| Règle le moteur | Réduisez la complexité en traitant les demandes entrantes avec des unités de code lisibles. |
| Http / https | Capacités client intégrées avec vérification en option du certificat de pairs SSL. Déprécié |
| Ipv4 / ipv6 | Protocole Internet Version 4/6 Prise en charge du réseau. |
| Architecture | Architecture asynchrone simple ou multithread, capable de résoudre le problème C10K. |
| Convertisseurs | Conversions de chemin, de requête et d'en-tête intégrées pour les types de données primaires. |
| Authentification | Authentification du service et / ou des ressources séparées. |
| Gestion des erreurs | Séparer le service et / ou la gestion des erreurs au niveau des ressources. |
| Adresse de liaison | Bond les services HTTP et / ou HTTPS pour séparer les adresses IP. |
| Manipulation du signal | Capturez les signaux de processus générés par le système d'exploitation. |
| Documentation | Documentation de haute qualité couvrant l'architecture et l'API. |
| Conformité | Flexibilité pour aborder la conformité HTTP 1.0 / 1.1 +. |
| Mature | Sécurisé, stable et largement testé depuis 2013. |
| Communauté | Communauté open source active, dynamique et énergique. |
| Soutien | Le support commercial est disponible auprès de Corvusoft. |
# include < memory >
# include < cstdlib >
# include < restbed >
using namespace std ;
using namespace restbed ;
void post_method_handler ( const shared_ptr< Session > session )
{
const auto request = session-> get_request ( );
int content_length = request-> get_header ( " Content-Length " , 0 );
session-> fetch ( content_length, [ ]( const shared_ptr< Session > session, const Bytes & body )
{
fprintf ( stdout, " %.*s n " , ( int ) body. size ( ), body. data ( ) );
session-> close ( OK, " Hello, World! " , { { " Content-Length " , " 13 " } } );
} );
}
int main ( const int , const char ** )
{
auto resource = make_shared< Resource >( );
resource-> set_path ( " /resource " );
resource-> set_method_handler ( " POST " , post_method_handler );
auto settings = make_shared< Settings >( );
settings-> set_port ( 1984 );
settings-> set_default_header ( " Connection " , " close " );
Service service;
service. publish ( resource );
service. start ( settings );
return EXIT_SUCCESS;
}Des exemples plus approfondis peuvent être trouvés ici. Pour voir le repos utilisé dans la colère, veuillez visiter le projet RESTQ de Corvusoft.
© 2013-2020 Corvusoft Limited, Royaume-Uni. Tous droits réservés.
Le cadre redigé est en double licence; Voir la licence pour plus de détails.
Veuillez contacter [email protected], pour des options de support et de licence, y compris le développement de logiciels sur mesure, les tests, la consultation en conception, la formation, le mentorat et l'examen du code.
Veuillez soumettre toutes les améliorations, propositions et défauts via le tracker du problème; Alternativement, posez une question sur StackOverflow Tagged #Restbed.
git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_SSL = NO] [-DBUILD_TESTS = NO] ..
make install
make testVous trouverez désormais tous les composants requis installés dans le sous-fichier de distribution.
| Option | Description | Défaut |
|---|---|---|
| Build_ssl | Activer le support SSL / TLS. | Activé |
| Build_ipc | Activez les sockets de domaine Unix. | Désactivé |
| Build_tests | Construisez des suites de test de projet. | Activé |
| Build_devel_package | Installez les en-têtes dans cmake_install_prefix. | Activé |
| Build_shared_library | Produire une construction partagée de repos. | Activé |
| Build_static_library | Produisez une construction statique de repos. | Activé |
Prérequis: Visual Studio 2022, Cmake, Git, Perl.
L'utilisation de l'invite de commande des outils natifs X64 commencez, si nécessaire, le bâtiment OpenSSL.
git clone --recursive https://github.com/corvusoft/restbed.git
cd restbeddependencyopenssl
perl Configure [no-]shared
nmake
nmake testSi vous avez sélectionné pour utiliser la construction OpenSSL par défaut (partagée), vous devrez inclure le chemin d'installation dans votre environnement.
set PATH = restbeddependencyopenssl; %PATH%Si vous avez sélectionné pour utiliser la version statique OpenSSL (NO-SAVARED), vous devrez inclure des dépendances supplémentaires lors de la liaison de votre code d'application; Voir le projet OpenSSL pour plus de détails.
target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )Continuez maintenant avec les instructions de construction reposées suivantes.
mkdir restbedbuild
cd restbedbuild
cmake -G " Visual Studio 17 2022 " [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctestPour les instructions Microsoft Visual Studio 14 2015 et plus de détails, veuillez consulter la fonctionnalité n ° 17.
Vous pouvez télécharger et installer Rested à l'aide du gestionnaire de dépendance VCPKG:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install restbedLe port redémarré dans VCPKG est tenu à jour par les membres de l'équipe Microsoft et les contributeurs communautaires. Si la version est obsolète, veuillez créer une demande de problème ou d'extraction sur le référentiel VCPKG.
Cette base de code est destinée à être aussi auto-documentée que possible. Nous avons fourni de nombreux exemples et suites de test pour aider les développeurs.
Vous pouvez localiser le dernier design et la documentation de l'API ici.
| Ressource | Exigence |
|---|---|
| Compilateur | C ++ 14 conforme ou supérieur |
| OS | BSD, Linux, Mac OSX, Windows, Raspbian |
| Jalon | Fonctionnalité | Statut |
|---|---|---|
| 0.0 | Service HTTP asynchrone | complet |
| 1.0 | HTTP 1.0 Compliance | complet |
| 2.0 | HTTP 1.1 Compliance | complet |
| 2.5 | Fixer une couche de prise | complet |
| 2.5 | Ports réseau simultanés (HTTP / HTTPS) | complet |
| 3.0 | Règle le moteur | complet |
| 3.5 | Planifiez les tâches sur la boucle du service | complet |
| 3.5 | Capacité de service multithread | complet |
| 3.5 | Lier le service à une adresse spécifique | complet |
| 3.5 | Gestion de session | complet |
| 4.0 | Client HTTP | complet |
| 4.0 | Manipulation du signal | complet |
| 4.5 | Documentation API | complet |
| 4.5 | Folie | complet |
| 5.0 | Certificats SSL côté client | développement |
| 5.0 | Cache de ressources | développement |
| 5.0 | Modifications d'exécution | développement |
| 5.0 | HTTP 2 Compliance | développement |
| 5.0 | Refactor, réduir, réutiliser | actif |
| Méthode | Description |
|---|---|
| Gazouillement | Tweetez-nous vos questions et vos demandes de fonctionnalités. |
| [email protected] | Prise en charge des requêtes liées. |
| [email protected] | Requêtes liées à la vente. |