git404hub

what is evpp fr?

qihoo360/evpp — explained in plain English

Analysis updated 2026-06-26

3,767C++Audience · developerComplexity · 4/5LicenseSetup · moderate

tl;dr

evpp is a high-performance C++ library for building network servers and clients that handle many simultaneous connections efficiently. It supports TCP, UDP, and HTTP and includes ready-made clients for Memcached and NSQ message queues.

vibe map

mindmap
  root((evpp))
    What it does
      Network server library
      TCP UDP HTTP support
      Event-driven design
    Tech Stack
      C++11
      libevent
    Use Cases
      High-throughput servers
      Memcached client
      NSQ message queue
    Audience
      C++ backend engineers
      Systems programmers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Build a high-throughput TCP server that handles thousands of simultaneous client connections without one thread per connection.

VIBE 2

Add non-blocking HTTP request handling to a C++ service that needs to respond to many web clients at once.

VIBE 3

Connect a C++ backend service to a Memcached cache cluster using the bundled evmc client library.

VIBE 4

Integrate an NSQ message queue consumer into a C++ microservice using the evnsq companion client.

what's the stack?

C++libeventC++11

how it stacks up fr

qihoo360/evppintrolab/rtabmapabcz316/skroot-linuxkernelroot
Stars3,7673,7683,765
LanguageC++C++C++
Setup difficultymoderatehardhard
Complexity4/54/55/5
Audiencedeveloperresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · moderate time til it works · 30min

Requires libevent and a C++11-capable compiler, builds on Linux, BSD, macOS, and Windows with CMake.

Use, modify, and distribute freely for any purpose including commercial use, as long as you keep the copyright and license notice. BSD 3-Clause license.

in plain english

evpp is a C++ library for building network servers and clients. It supports three communication protocols: TCP (for persistent connections), UDP (for connectionless messaging), and HTTP (for web-style request-response communication). The library is open source and was created by Qihoo360, a Chinese internet company, to handle their internal needs for building high-throughput network services. The core design uses an event-driven, non-blocking approach, which means the server can handle many simultaneous connections without creating a separate thread for each one. Instead, threads share an event loop that wakes up and responds only when new data arrives. This pattern is common in high-performance server software because it reduces the overhead of switching between threads constantly. The library is built on top of libevent, a well-tested event handling library, but replaces libevent's internal memory buffer with its own implementation. According to the project's benchmarks, this change makes evpp 17 to 130 percent faster than libevent in data throughput tests, while performing at a similar level to Boost.Asio (another widely-used C++ networking library). The project also ships two companion client libraries. The first, evmc, is a non-blocking C++ client for Memcached (a caching system used to speed up web applications). The second, evnsq, is a client for NSQ (a message queue system for passing data between services). Both are reported to be running in production at Qihoo360, handling hundreds of billions of requests and messages per day. evpp uses C++11 features throughout and runs on Linux, BSD, macOS, and Windows. The library is licensed under the BSD 3-Clause license.

prompts (copy fr)

prompt 1
Show me a minimal evpp TCP echo server in C++ that accepts multiple simultaneous clients using its event loop.
prompt 2
I want to use evpp to build an HTTP server in C++ that handles POST requests. What does the handler registration look like?
prompt 3
How do I use the evmc library from evpp to make non-blocking GET and SET calls to a Memcached server from C++?
prompt 4
I'm comparing evpp to Boost.Asio for a new C++ network service. Based on the library's design and benchmarks, what are the trade-offs I should consider?

Frequently asked questions

what is evpp fr?

evpp is a high-performance C++ library for building network servers and clients that handle many simultaneous connections efficiently. It supports TCP, UDP, and HTTP and includes ready-made clients for Memcached and NSQ message queues.

What language is evpp written in?

Mainly C++. The stack also includes C++, libevent, C++11.

What license does evpp use?

Use, modify, and distribute freely for any purpose including commercial use, as long as you keep the copyright and license notice. BSD 3-Clause license.

How hard is evpp to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is evpp for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.