userver: userver
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts

The C++ Asynchronous Framework

🐙 userver is the modern open source asynchronous framework with a rich set of abstractions for fast and comfortable creation of C++ microservices, services and utilities. The problem of efficient I/O interactions is solved transparently for the developers:
std::size_t Ins(storages::postgres::Transaction& tr, std::string_view key) {
// Asynchronous execution of the SQL query in transaction. Current thread
// handles other requests while the response from the DB is being received:
auto res = tr.Execute("INSERT INTO keys VALUES ($1)", key);
return res.RowsAffected();
}

Micro-services based on userver served more than a billion requests while you were reading this sentence.

Technologies for debugging and memory profiling a running production service.
Efficient asynchronous drivers for databases (MongoDB, PostgreSQL, MySQL/MariaDB (experimental), Redis, ClickHouse, ...) and data transfer protocols (HTTP, WEbSockets, gRPC, TCP, AMQP-0.9.1 (experimental), ...), tasks construction and cancellation.
Functionality to change the service configuration on-the-fly. Adjust options of the deadline propagation, timeouts, congestion-control without a restart.
Rich set of high-level components for caches, tasks, distributed locking, logging, tracing, statistics, metrics, JSON/YAML/BSON.
Comprehensive set of asynchronous low-level synchronization primitives and OS abstractions.

Speed of C++, simplicity of Python.
Dive into the documentation for more details.
Github   Telegram