Facebook has rolled out another chunk of open-source code, this time a C++ HTTP stack called Proxygen, which includes a web server.
Techies at the social network hope other developers will use the BSD-licensed software as the basis of their own web apps, and have included a bunch of “sensible defaults” to get people on their way.
The company describes its work as “a simple, fast-out-of-the-box event-driven server.” In a blog post, FB software engineers Daniel Sommermann and Alan Frindell said Proxygen [GitHub repo] supports HTTP 1.1 (HTTP/2 on the way), and SPDY 3 and 3.1.
Facebook's build-rather-than-buy attitude is well-known, and Proxygen evolved from what was an internal HTTP and HTTPS reverse-proxy load balancer in 2011. Writing their own HTTP stack made it easier to tie the software into other in-house tools. In their post, Sommermann and Frindell namecheck Facebook's branch of Apache Thrift, and the ODS monitoring tool.
With “many trillions of HTTP(S) and SPDY requests” under its belt, The Social NetworkTM reckons Proxygen is ready for the world at large.
The blog post also includes some use-case info, an architectural description, and Facebook's internal benchmark data. On a 32-logical-core Intel Xeon CPU E5-2670 running at 2.60GHz, with 16 GiB of RAM, an eight-thread Proxygen handled more than 276,000 HTTP 1.1 requests and more than 304,000 SPDY 3.1 requests in a 60-second test. ®