Serdar Yegulalp
Senior Writer

Facebook snubs Apache, Nginx for homegrown Proxygen framework

news analysis
Nov 6, 20142 mins

Facebook open-sources Proxygen, it custom-built HTTP stack written in C++, but those already on Apache or Nginx probably won't swap yet

A man is silhouetted against a video screen with a Facebook logo
Credit: REUTERS/Dado Ruvic

Facebook has long been a poster child for building your own infrastructure, creating from scratch everything from its own PHP virtual machine and PHP language implementation to devising new standards for data center hardware. But rather than keep its work close to the vest, the company has chosen to share it as open source projects.

Newest on that list is Proxygen, a C++ HTTP framework for creating Web stacks from scratch. “We want to help more people build and deploy high-performance C++ HTTP services,” Facebook says in its introductory blog post to the project, “and we believe that Proxygen is a great framework to do so.”

Facebook found that creating a low-level HTTP server that integrates directly into applications would be a better fit for its needs than repurposing an existing Web server like Nginx or Apache HTTPD. It would allow better reuse of existing code; more thorough integration with Facebook’s existing infrastructure and tooling; the ability to quickly implement cutting-edge HTTP protocol features like HPACK, SPDY, and WebSockets; and to be able to freely build at scale.

Creating a low-level project such as Proxygen may seem like a step back from building architectures composed of loosely coupled microservices, as is the trend today. But Facebook clearly isn’t recommending using Proxygen as a universal replacement for the above-mentioned stacks. Rather, it’s an ingredient for use in a custom stack designed to solve problems that only emerge in exceptional circumstances.

Another reason for Proxygen’s potentially narrow appeal: It was built to complement and leverage Facebook’s existing toolset. Many of the dependencies, which include late-breaking features in C++, might make the project less useful to those who aren’t already invested.

Proxygen’s appeal may reside in the use of its various design paradigm to inspire other HTTP-related projects to implement the same ideas. Proxygen’s stack, for instance, breaks handling of the HTTP layer across several abstractions. This, Facebook claims, “has allowed us to support new multiplexing protocols like SPDY and HTTP/2 without having to duplicate code.”

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author