Wangle is a C++ framework that provides client and server abstractions for building services in a consistent, modular, and composable way.
Wangle solves the problem of writing networked services by offering high-level abstractions built on top of folly's asynchronous I/O primitives. It combines two layers of abstraction: a client/server layer with ServerBootstrap and ClientBootstrap for managing thread pools and connection pipelines, and a request/response layer inspired by Finagle that handles protocol-agnostic concerns like load balancing, connection pooling, and retry logic. Developers define pipelines of handlers that process socket data, and services that implement matched client/server interfaces. Filters can be applied at both the service level (for request-level concerns like timeouts and rate limiting) and the factory level (for connection-level concerns like pooling and load balancing).
Wangle suits teams building services in C++ who want the kind of structured, composable abstractions available in languages like Java and Python. It works well for any request/response protocol, including Thrift and HTTP. The framework requires folly, fizz, CMake, and OpenSSL as dependencies. A tutorial and examples are provided to help developers get started, including a basic echo server and client implementation.
The project maintains a steady stream of commits across its codebase with consistent activity in core modules. Pull requests receive timely review and integration. The issue tracker shows regular engagement with bug reports and feature discussions. Development spans multiple areas including pipeline handling, service abstractions, and protocol-specific implementations, indicating active maintenance of the framework's breadth.