Restbed ist ein umfassendes und konsistentes Programmiermodell für das Erstellen von Anwendungen, die eine nahtlose und sichere Kommunikation über HTTP erfordern, mit der Fähigkeit, eine Reihe von Geschäftsprozessen zu modellieren, die auf mobile, Tablet-, Desktop- und eingebettete Produktionsumgebungen abzielen.
Es ist vergleichbar mit der Einbettung von Nginx in Ihre Unternehmens eigene Produktlinie. - Lösungen Architekt, Bellrock-Technologie
| Besonderheit | Beschreibung |
|---|---|
| Websockets | Full-Duplex-Kommunikationskanäle über eine einzelne TCP-Verbindung. |
| Server-Sent-Ereignisse | Server-Sent-Ereignisse ermöglichen ein effizientes Streaming von Server-zu-Client-Streaming von textbasierten Ereignisdaten-EG, Echtzeit-Benachrichtigungen oder auf dem Server generierte Aktualisierungen. |
| Komet | Langes Wahlmodell, mit dem langjährige HTTP-Anforderungen zum Drücken von Daten vom Server zum Client gedrückt werden können. |
| SSL/TLS | Über die Drahtkommunikation sicher sein, sodass Sie private Daten online übertragen können. |
| Sitzungsmanagement | Erstellen Sie benutzerdefinierte HTTP -Sitzungen Persistenz und Verwaltungslogik. |
| HTTP -Pipelining | Eine Technik, mit der mehrere HTTP -Anfragen auf eine einzelne TCP -Verbindung gesendet werden können, ohne auf die entsprechenden Antworten zu warten. |
| Pfadparameter | Annotate URIs mit benutzerdefinierten Pfadparametern wie Ressourcenschlüssel, Revisionen usw. |
| Abfrageparameter | Parameter Parsen für automatisierte Abfrage. |
| Headerfilter | Filter eingehende HTTP -Anfragen nach Header. |
| Protokollierung | Passen Sie an, wie und wo Protokolleinträge erstellt werden. |
| Multi-Pfad-Ressourcen | Geben Sie eine Ressource mehrere Pfade für eine verbesserte Lesbarkeit. |
| Anpassbare Methoden | Fügen Sie Ihre eigenen benutzerdefinierten HTTP -Methoden hinzu. |
| Kompression | Anpassungsfähigkeit, um jede Form von Komprimierung Gzip, Deflate usw. zu beheben ... |
| Codierung | Anpassungsfähigkeit, um jede Form der Codierung von UTF-32, ASCII usw. zu beheben ... |
| Regeln Engine | Reduzieren Sie die Komplexität, indem Sie eingehende Anforderungen mit lesbaren Codeeinheiten bearbeiten. |
| Http/https | Eingebaute Kundenfunktionen mit optionaler Überprüfung des SSL -Peer -Zertifikats. Veraltet |
| IPv4/IPv6 | Internet -Protokollversion 4/6 Netzwerkunterstützung. |
| Architektur | Asynchrone Einzel- oder Multi-Thread-Architektur, die sich mit dem C10K-Problem befassen kann. |
| Konverter | Eingebauter Pfad-, Abfrage- und Header-Conversions für primäre Datentypen. |
| Authentifizierung | Separate Service- und/oder Ressourcenstuf -Authentifizierung. |
| Fehlerbehandlung | Separate Service- und/oder Ressourcenebene Fehlerbehandlung. |
| Adressbindung | Binden Sie HTTP- und/oder HTTPS -Dienste an separate IP -Adressen. |
| Signalhandhabung | Capture -Betriebssystem generierte Prozesssignale. |
| Dokumentation | Hochwertige Dokumentation über die Architektur und API. |
| Einhaltung | Flexibilität zur Bekämpfung von HTTP 1.0/1.1+ Konformität. |
| Reifen | Sicher, stabil und seit 2013 ausführlich getestet. |
| Gemeinschaft | Aktive, lebendige und energische Open -Source -Community. |
| Unterstützung | Die kommerzielle Unterstützung ist bei Corvusoft erhältlich. |
# 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;
}Hier finden Sie eingehende Beispiele. Um das in Wut verwendete Restbeds zu sehen, besuchen Sie bitte das RESTQ -Projekt von Corvusoft.
© 2013-2020 Corvusoft Limited, Großbritannien. Alle Rechte vorbehalten.
Das restliche Rahmen ist zwei lizenziert; Weitere Informationen finden Sie in Lizenz.
Bitte wenden Sie sich an [email protected], um Support- und Lizenzoptionen wie maßgeschneiderte Softwareentwicklung, Tests, Entwurfsberatung, Schulung, Mentoring und Code -Überprüfung.
Bitte reichen Sie alle Verbesserungen, Vorschläge und Mängel über den Problem Tracker ein. Alternativ stellen Sie eine Frage zu Stackoverflow mit dem Tag #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 testSie finden nun alle im Unterordner der Verteilung installierten Komponenten.
| Option | Beschreibung | Standard |
|---|---|---|
| Build_SSL | Aktivieren Sie die Unterstützung von SSL/TLS. | Ermöglicht |
| Build_ipc | Aktivieren Sie Unix -Domänen -Sockets. | Deaktiviert |
| Build_tests | Projekttestsuiten erstellen. | Ermöglicht |
| Build_devel_package | Installieren Sie Header in CMake_Install_Prefix. | Ermöglicht |
| Build_shared_library | Produzieren einen gemeinsamen Build von Restbett. | Ermöglicht |
| Build_static_library | Erzeugen Sie einen statischen Aufbau von Restbetten. | Ermöglicht |
Voraussetzungen: Visual Studio 2022, CMake, Git, Perl.
Verwenden der X64 Native Tools -Eingabeaufforderung, falls erforderlich, bauen OpenSSL nach Bedarf.
git clone --recursive https://github.com/corvusoft/restbed.git
cd restbeddependencyopenssl
perl Configure [no-]shared
nmake
nmake testWenn Sie den Standard -OpenSSL -Build (freigegeben) ausgewählt haben, müssen Sie den Installationspfad in Ihre Umgebung aufnehmen.
set PATH = restbeddependencyopenssl; %PATH%Wenn Sie den statischen OpenSSL-Build (nicht ausgebildet) ausgewählt haben, müssen Sie bei der Verknüpfung Ihres Anwendungscodes zusätzliche Abhängigkeiten einfügen. In OpenSSL -Projekt finden Sie weitere Details.
target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )Fahren Sie nun mit den folgenden Anweisungen für das Stellvertreter aus.
mkdir restbedbuild
cd restbedbuild
cmake -G " Visual Studio 17 2022 " [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctestFür Microsoft Visual Studio 14 2015 -Anweisungen und weitere Details finden Sie in Feature Nr. 17.
Sie können mit dem VCPKG -Abhängigkeits -Manager neu herunterladen und installieren:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install restbedDer restliche Port in VCPKG wird von Microsoft -Teammitgliedern und Community -Mitwirkenden auf dem Laufenden gehalten. Wenn die Version veraltet ist, erstellen Sie bitte eine Ausgabe- oder Pull -Anfrage im VCPKG -Repository.
Diese Codebasis soll so selbst dokumentiert wie möglich sein. Wir haben viele Beispiele und Testsuiten geliefert, um Entwicklern zu unterstützen.
Hier finden Sie die neuesten Design- und API -Dokumentation.
| Ressource | Erfordernis |
|---|---|
| Compiler | C ++ 14 konform oder höher |
| Betriebssystem | BSD, Linux, Mac OSX, Windows, Raspbian |
| Meilenstein | Besonderheit | Status |
|---|---|---|
| 0,0 | Asynchroner HTTP -Service | vollständig |
| 1.0 | HTTP 1.0 Konformität | vollständig |
| 2.0 | HTTP 1.1 Compliance | vollständig |
| 2.5 | Sicherungsschicht sichern | vollständig |
| 2.5 | Gleichzeitige Netzwerkports (HTTP/HTTPS) | vollständig |
| 3.0 | Regeln Engine | vollständig |
| 3.5 | Planen Sie Aufgaben zum Service Run-Loop | vollständig |
| 3.5 | Multi-Thread-Service-Fähigkeit | vollständig |
| 3.5 | Binden Sie den Service an eine bestimmte Adresse | vollständig |
| 3.5 | Sitzungsmanagement | vollständig |
| 4.0 | HTTP -Client | vollständig |
| 4.0 | Signalhandhabung | vollständig |
| 4.5 | API -Dokumentation | vollständig |
| 4.5 | Web -Sockeln | vollständig |
| 5.0 | Kundenseitige SSL-Zertifikate | Entwicklung |
| 5.0 | Ressourcen -Caching | Entwicklung |
| 5.0 | Laufzeitänderungen | Entwicklung |
| 5.0 | HTTP 2 Konformität | Entwicklung |
| 5.0 | Refactor, reduzieren, wiederverwenden | aktiv |
| Verfahren | Beschreibung |
|---|---|
| Twittern Sie uns Ihre Fragen und Funktionsanfragen. | |
| [email protected] | Unterstützen Sie verwandte Abfragen. |
| [email protected] | Verkaufsbezogene Fragen. |