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, GRPC, TCP, AMQP-0.9.1 (experimental), ...), tasks construction and cancellation.
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.