# drogonframework/drogon

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/drogonframework-drogon).**

13,568 stars · 1,302 forks · C++ · mit

## Links

- GitHub: https://github.com/drogonframework/drogon
- awesome-repositories: https://awesome-repositories.com/repository/drogonframework-drogon.md

## Topics

`asynchronous-programming` `drogon` `http` `http-framework` `http-server` `linux` `non-blocking-io`

## Description

Drogon is a high-performance, cross-platform C++ framework designed for building asynchronous web services and server-side applications. It functions as a multi-threaded, event-driven server engine that manages concurrent network traffic and WebSocket connections with minimal latency. By leveraging non-blocking input/output and native code compilation, the framework provides a foundation for scalable applications that operate efficiently across diverse hardware architectures.

The framework distinguishes itself through its compile-time template rendering, which transforms dynamic HTML views into native machine code to maximize execution speed. It also incorporates a sophisticated object-relational mapping layer that enables asynchronous database operations and persistent connection pooling, ensuring that data-heavy tasks do not stall the main execution thread. These capabilities are supported by a middleware-based filtering system that allows for the injection of custom logic and security policies throughout the request-response cycle.

Beyond its core engine, the framework provides a comprehensive suite of tools for modern web development, including RESTful service support, real-time bidirectional communication, and automated project scaffolding. It handles complex operational requirements such as request proxying, load balancing, and secure traffic management through integrated SSL/TLS configuration. The system also includes built-in support for monitoring, logging, and performance metrics export to maintain visibility into application health.

Developers can manage the entire application lifecycle through command-line tools that facilitate project generation, dependency management, and runtime configuration. The framework is designed to be portable, supporting cross-platform compilation to ensure consistent behavior across different operating systems.

## Tags

### Web Development

- [High-Performance Web Frameworks](https://awesome-repositories.com/f/web-development/high-performance-web-frameworks.md) — Provides a high-performance C++ framework for building scalable server-side applications.
- [High-Performance Web Services](https://awesome-repositories.com/f/web-development/high-performance-web-services.md) — Provides a high-performance C++ framework for building scalable, asynchronous web services.
- [HTTP Servers](https://awesome-repositories.com/f/web-development/http-servers.md) — Functions as a multi-threaded, event-driven asynchronous HTTP server engine.
- [Web Application Frameworks](https://awesome-repositories.com/f/web-development/web-application-frameworks.md) — Provides a high-performance, asynchronous framework for building scalable server-side web applications. ([source](https://github.com/drogonframework/drogon#readme))
- [HTTP Request Handlers](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/routing-request-handling/http-request-handlers.md) — Directs incoming HTTP traffic to specific handler functions by matching path patterns and HTTP verbs. ([source](https://github.com/drogonframework/drogon#readme))
- [Asynchronous Request Handlers](https://awesome-repositories.com/f/web-development/asynchronous-request-handlers.md) — Processes concurrent web requests using non-blocking execution to maintain high throughput without stalling the main thread. ([source](https://github.com/drogonframework/drogon/blob/master/README.zh-CN.md))
- [Real-Time Communication](https://awesome-repositories.com/f/web-development/real-time-communication.md) — Facilitates real-time bidirectional communication through persistent WebSocket connections.
- [Server-Side Rendering](https://awesome-repositories.com/f/web-development/rendering-templating/server-side-rendering.md) — Compiles dynamic HTML templates into native machine code for high-performance server-side rendering. ([source](https://github.com/drogonframework/drogon#readme))
- [REST API Services](https://awesome-repositories.com/f/web-development/rest-api-services.md) — Exposes data and services through standard HTTP methods using JSON serialization for concurrent information storage. ([source](https://github.com/drogonframework/drogon/tree/master/examples))
- [Request Handler Chains](https://awesome-repositories.com/f/web-development/request-handler-chains.md) — Executes reusable logic chains and middleware before incoming requests reach primary controller handlers. ([source](https://github.com/drogonframework/drogon/blob/master/README.zh-TW.md))
- [WebSockets](https://awesome-repositories.com/f/web-development/websockets.md) — Establishes persistent bidirectional connections between servers and clients to facilitate instant messaging and live data updates. ([source](https://github.com/drogonframework/drogon/tree/master/examples))
- [File Uploads](https://awesome-repositories.com/f/web-development/file-uploads.md) — Parses incoming multipart form data to capture and store user-uploaded files securely and efficiently. ([source](https://github.com/drogonframework/drogon/tree/master/examples))
- [Reverse Proxies](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-request-handling/reverse-proxies.md) — Forwards incoming traffic to backend services using load balancing strategies to distribute requests across multiple server instances. ([source](https://github.com/drogonframework/drogon/tree/master/examples))

### Programming Languages & Runtimes

- [Event Loops](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/execution-models/multi-threaded-execution/event-loops.md) — Uses a non-blocking event loop to manage thousands of simultaneous connections without the overhead of thread-per-request models.
- [Thread Pools](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/task-orchestration-frameworks/thread-pools.md) — Distributes heavy computational tasks across a managed pool of worker threads to ensure efficient utilization of multi-core hardware.

### System Administration & Monitoring

- [Event-Driven I/O](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o.md) — Handles network and database operations through asynchronous primitives to prevent thread starvation during high-concurrency workloads.
- [Logging and Telemetry](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry.md) — Integrates logging and performance metrics export to maintain visibility into application health. ([source](https://github.com/drogonframework/drogon/blob/master/ChangeLog.md))
- [Metrics Exporters](https://awesome-repositories.com/f/system-administration-monitoring/metrics-exporters.md) — Exposes application health and operational statistics in formats compatible with external monitoring systems for real-time analysis. ([source](https://github.com/drogonframework/drogon/tree/master/examples))
- [Controller Mapping](https://awesome-repositories.com/f/system-administration-monitoring/remote-device-management/remote-pairing-controllers/controller-mapping.md) — Connects incoming HTTP paths to specific handler functions or classes while extracting parameters to simplify the development of structured interfaces. ([source](https://github.com/drogonframework/drogon/blob/master/README.zh-TW.md))

### Data & Databases

- [Object-Relational Mapping](https://awesome-repositories.com/f/data-databases/object-relational-mapping.md) — Abstracts database interactions into native objects to simplify data persistence while maintaining asynchronous access to storage backends.
- [Object-Relational Mapping Utilities](https://awesome-repositories.com/f/data-databases/object-relational-mapping-utilities.md) — Includes a sophisticated object-relational mapping layer for asynchronous data persistence.
- [Asynchronous Database Drivers](https://awesome-repositories.com/f/data-databases/asynchronous-database-drivers.md) — Enables non-blocking, asynchronous database operations to prevent stalling the main execution thread.
- [Object Relational Mappings](https://awesome-repositories.com/f/data-databases/object-relational-mappings.md) — Integrates object-relational mapping and transaction control for managing data across storage systems. ([source](https://github.com/drogonframework/drogon/blob/master/ChangeLog.md))
- [Database Connection Managers](https://awesome-repositories.com/f/data-databases/database-connection-managers.md) — Manages persistent database connections with pooling and timeout configurations for optimized data access. ([source](https://github.com/drogonframework/drogon/blob/master/config.example.json))
- [Redis](https://awesome-repositories.com/f/data-databases/connection-managers/redis.md) — Establishes persistent, thread-safe connections to Redis for high-speed data retrieval. ([source](https://github.com/drogonframework/drogon/blob/master/config.example.json))

### Development Tools & Productivity

- [Template Compilation Tools](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/template-compilation-tools/template-compilation-tools.md) — Transforms dynamic HTML templates into native machine code during the build process to maximize runtime execution speed.
- [Cross-Platform Build Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-engines/cross-platform-build-systems.md) — Supports cross-platform compilation to build applications for diverse hardware architectures. ([source](https://github.com/drogonframework/drogon/blob/master/README.md))
- [Application Configuration Frameworks](https://awesome-repositories.com/f/development-tools-productivity/application-configuration-frameworks.md) — Adjusts core execution parameters like thread counts and session policies to balance system performance and state persistence. ([source](https://github.com/drogonframework/drogon/blob/master/config.example.json))
- [Project Scaffolding](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/project-scaffolding.md) — Provides command-line tools to generate boilerplate code for controllers, views, and project structures. ([source](https://github.com/drogonframework/drogon#readme))

### Networking & Communication

- [WebSocket Managers](https://awesome-repositories.com/f/networking-communication/websocket-managers.md) — Facilitates live bidirectional communication by handling custom protocols and tracking the lifecycle of every active WebSocket connection. ([source](https://github.com/drogonframework/drogon/blob/master/ChangeLog.md))
- [Network Traffic Management](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/network-traffic-management.md) — Manages secure network traffic through request filtering and integrated SSL/TLS configuration.
- [HTTP Traffic Manipulation Tools](https://awesome-repositories.com/f/networking-communication/http-traffic-manipulation-tools.md) — Modifies headers, query parameters, and body content to control how applications process incoming requests and send structured responses. ([source](https://github.com/drogonframework/drogon/blob/master/ChangeLog.md))

### Software Engineering & Architecture

- [Asynchronous Task Execution](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-models/asynchronous-task-execution.md) — Runs non-blocking operations using coroutines and task queues to handle high-concurrency workloads efficiently. ([source](https://github.com/drogonframework/drogon/blob/master/ChangeLog.md))
- [Cross-Platform Development](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-development.md) — Supports portable, cross-platform development for high-concurrency web services.
- [Request Middleware](https://awesome-repositories.com/f/software-engineering-architecture/request-middleware.md) — Executes chains of reusable logic hooks before request processing to enforce security and cross-cutting concerns consistently.
- [Aspect-Oriented Programming Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/aspect-oriented-programming-frameworks.md) — Provides middleware hooks for injecting custom logic and security policies into the request-response cycle. ([source](https://github.com/drogonframework/drogon/blob/master/ChangeLog.md))
- [Application Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management.md) — Orchestrates server startup, signal handling, and plugin registration to maintain consistent application behavior throughout the runtime. ([source](https://github.com/drogonframework/drogon/blob/master/ChangeLog.md))

### Security & Cryptography

- [TLS/SSL Configurations](https://awesome-repositories.com/f/security-cryptography/security/cryptography-and-secrets/cryptographic-primitives-management/tls-ssl-configurations.md) — Validates client certificates and implements encryption settings to protect web applications against unauthorized access. ([source](https://github.com/drogonframework/drogon/blob/master/ChangeLog.md))
- [Session Authentication](https://awesome-repositories.com/f/security-cryptography/session-authentication.md) — Maintains state across multiple requests to track authentication status and user identity throughout the application lifecycle. ([source](https://github.com/drogonframework/drogon/tree/master/examples))

### Business & Productivity Software

- [Cross-Platform Applications](https://awesome-repositories.com/f/business-productivity-software/cross-platform-applications.md) — Ensures consistent execution of high-performance services across multiple operating systems. ([source](https://github.com/drogonframework/drogon/blob/master/package.xml))

### DevOps & Infrastructure

- [Application Server Configurations](https://awesome-repositories.com/f/devops-infrastructure/application-server-configurations.md) — Configures server-level runtime settings including threading and logging through code-based parameters. ([source](https://github.com/drogonframework/drogon/blob/master/README.md))
- [HTTP Listener Configurations](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/server-and-site-configuration/http-listener-configurations.md) — Defines multiple server endpoints with configurable security and encryption protocols. ([source](https://github.com/drogonframework/drogon/blob/master/config.example.json))
