Restbed es un modelo de programación integral y consistente para la creación de aplicaciones que requieren una comunicación perfecta y segura sobre HTTP, con la capacidad de modelar una gama de procesos comerciales, diseñados para apuntar a entornos de producción móviles, de tabletas, escritorio y de escritorio y integrados.
Es similar a incrustar a Nginx en la línea de productos de su empresa. - Arquitecto de soluciones, tecnología Bellrock
| Característica | Descripción |
|---|---|
| Redes web | Canales de comunicación Full-Duplex a través de una sola conexión TCP. |
| Eventos del servidor | Los eventos de Servidor-SENT permiten una transmisión eficiente de servidor a cliente de datos de eventos basados en texto: EG, notificaciones en tiempo real o actualizaciones generadas en el servidor. |
| Cometa | Modelo de votación largo para permitir solicitudes HTTP de larga data para impulsar los datos del servidor al cliente. |
| SSL/TLS | Asegure sobre la comunicación de cables, lo que le permite transmitir datos privados en línea. |
| Gestión de sesiones | Cree lógica de gestión y persistencia de la sesión HTTP personalizada. |
| Tuberías http | Una técnica que permite enviar múltiples solicitudes HTTP en una sola conexión TCP sin esperar las respuestas correspondientes. |
| Parámetros de ruta | Anotar URI con parámetros de ruta personalizados como claves de recursos, revisiones, etc. |
| Parámetros de consulta | Parsing de parámetros de consulta automatizada. |
| Filtros de encabezado | Filtre las solicitudes HTTP entrantes por encabezados. |
| Explotación florestal | Personalice cómo y dónde se crean las entradas de registro. |
| Recursos múltiples | Dé un recurso múltiples rutas para una mejor legibilidad. |
| Métodos personalizables | Agregue sus propios métodos HTTP personalizados. |
| Compresión | Adaptabilidad para abordar cualquier forma de compresión GZIP, desinflar, etc. |
| Codificación | Adaptabilidad para abordar cualquier forma de codificación UTF-32, ASCII, etc. |
| Reglas del motor | Reduzca la complejidad procesando solicitudes entrantes con unidades de código legibles. |
| Http/https | Capacidades de cliente incorporadas con verificación opcional de certificado de par de SSL. Desapercibido |
| IPv4/IPv6 | Protocolo de Internet Versión 4/6 Soporte de red. |
| Arquitectura | Arquitectura asincrónica simple o múltiple, capaz de abordar el problema C10K. |
| Convertidores | Conversiones de ruta, consulta y encabezado incorporadas para tipos de datos primarios. |
| Autenticación | Servicio separado y/o autenticación de nivel de recursos. |
| Manejo de errores | Servicio separado y/o manejo de errores de nivel de recursos. |
| Enlace de dirección | Atar los servicios HTTP y/o HTTPS a las direcciones IP separadas. |
| Manejo de la señal | Capturar señales de proceso generadas por el sistema operativo. |
| Documentación | Documentación de alta calidad que cubre la arquitectura y la API. |
| Cumplimiento | Flexibilidad para abordar HTTP 1.0/1.1+ Cumplimiento. |
| Maduro | Seguro, estable y ampliamente probado desde 2013. |
| Comunidad | Comunidad de código abierto activa, vibrante y enérgica. |
| Apoyo | El soporte comercial está disponible en 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;
}Se pueden encontrar más ejemplos en profundidad aquí. Para ver Restbed usado con ira, visite el proyecto RESTQ de Corvusoft.
© 2013-2020 Corvusoft Limited, Reino Unido. Reservados todos los derechos.
El marco restante tiene doble licencia; Vea la licencia para obtener detalles completos.
Póngase en contacto con [email protected], para obtener opciones de soporte y licencia que incluyen desarrollo de software a medida, pruebas, consultas de diseño, capacitación, tutoría y revisión de código.
Envíe todas las mejoras, propuestas y defectos a través del rastreador de problemas; Alternativamente, haga una pregunta en StackOverflow etiquetado #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 testAhora encontrará todos los componentes requeridos instalados en el subcarpelo de distribución.
| Opción | Descripción | Por defecto |
|---|---|---|
| Build_ssl | Habilitar el soporte SSL/TLS. | Activado |
| Build_IPC | Habilite los enchufes de dominio Unix. | Desactivado |
| Build_tests | Construir suites de prueba de proyecto. | Activado |
| Build_devel_package | Instale encabezados en CMAKE_INSTALL_PREFIX. | Activado |
| Build_shared_library | Producir una construcción compartida de restos. | Activado |
| Build_static_library | Producir una construcción estática de restauración. | Activado |
Prerrequisitos: Visual Studio 2022, CMake, Git, Perl.
Usando el símbolo del sistema de herramientas nativas x64, si es necesario, la construcción OpenSSL.
git clone --recursive https://github.com/corvusoft/restbed.git
cd restbeddependencyopenssl
perl Configure [no-]shared
nmake
nmake testSi seleccionó usar la compilación OpenSSL predeterminada (compartida), deberá incluir la ruta de instalación en su entorno.
set PATH = restbeddependencyopenssl; %PATH%Si seleccionó utilizar la compilación Static OpenSSL (no compartida), deberá incluir dependencias adicionales al vincular su código de aplicación; Vea el proyecto OpenSSL para obtener más detalles.
target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )Ahora continúe con las siguientes instrucciones de construcción restantes.
mkdir restbedbuild
cd restbedbuild
cmake -G " Visual Studio 17 2022 " [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctestPara las instrucciones de Microsoft Visual Studio 14 2015, y más detalles, consulte la función #17.
Puede descargar e instalar restauración utilizando el Administrador de dependencias VCPKG:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install restbedEl puerto restante en VCPKG se mantiene actualizado por los miembros del equipo de Microsoft y los contribuyentes comunitarios. Si la versión está desactualizada, cree un problema o extraiga la solicitud en el repositorio de VCPKG.
Esta base de código está destinada a ser lo más autocontroladora posible. Hemos suministrado muchos ejemplos y suites de prueba para ayudar a los desarrolladores.
Puede localizar el último diseño y documentación de API aquí.
| Recurso | Requisito |
|---|---|
| Compilador | C ++ 14 compatible o superior |
| Sistema operativo | BSD, Linux, Mac OSX, Windows, Raspbian |
| Hito | Característica | Estado |
|---|---|---|
| 0.0 | Servicio HTTP asíncrono | completo |
| 1.0 | Cumplimiento de HTTP 1.0 | completo |
| 2.0 | HTTP 1.1 Cumplimiento | completo |
| 2.5 | Asegurar la capa de enchufe | completo |
| 2.5 | Puertos de red simultáneos (http/https) | completo |
| 3.0 | Reglas del motor | completo |
| 3.5 | Programar tareas en el bucle de ejecución de servicio | completo |
| 3.5 | Capacidad de servicio multiproceso | completo |
| 3.5 | Atar el servicio a la dirección específica | completo |
| 3.5 | Gestión de sesiones | completo |
| 4.0 | Cliente HTTP | completo |
| 4.0 | Manejo de la señal | completo |
| 4.5 | Documentación de API | completo |
| 4.5 | Enchufes web | completo |
| 5.0 | Certificados SSL del lado del cliente | desarrollo |
| 5.0 | Almacenamiento en caché de recursos | desarrollo |
| 5.0 | Modificaciones de tiempo de ejecución | desarrollo |
| 5.0 | HTTP 2 Cumplimiento | desarrollo |
| 5.0 | Refactor, reducir, reutilizar | activo |
| Método | Descripción |
|---|---|
| Gorjeo | Twittee sus preguntas y solicitudes de funciones. |
| [email protected] | Apoya consultas relacionadas. |
| [email protected] | Consultas relacionadas con la venta. |