Facebook said Wednesday that it’s open sourcing a new software framework called Proxygen that’s comprised of C++ HTTP libraries and a web server. The company says Proxygen will make it faster to build new features and roll them out into production environments.
Originally conceived in 2011 as a software library that could build out proxy servers, which act like intermediary points between an end user and a server, the project morphed into a bigger framework that lets Facebook use newer web-performance features in its infrastructure that other software frameworks can’t really handle without significant modifications.
For example, Facebook can use new software-performance enhancers like the Google-developed SPDY protocol for faster load times and increased security; TLS false start to boost the speed of SSL security exchanges; and specialized Facebook load-scheduling algorithms.
Proxygen can also easily integrate with Facebook’s many different infrastructure services, scales nicely and has a reusable codebase that helps the company harness the latest web technology like HTTP/2, the next-generation version of the HTTP web protocol.
From the Facebook blog:
[blockquote person=”Facebook” attribution=”Facebook”]The core HTTP layer is split into a four-part abstraction: the session, the codec, the transaction, and the handler. For each connection, a session is created. Each session has a codec, which is a protocol-specific framing object for serializing and de-serializing HTTP messages. The session is responsible for mapping each message from the codec to a particular HTTP transaction. Finally, the user of the library implements a handler that registers for HTTP-specific callbacks from a single transaction. This design has allowed us to support new multiplexing protocols like SPDY and HTTP/2 without having to duplicate code.
Facebook said that Proxygen uses the social media giant’s open-source C++ library Folly and its cross-language Thrift framework, which helps Facebook build distributed applications that need to speak to services written in other languages.
Proxygen is now ready to download at GitHub and is geared to coders who are looking for a new type of networking codebase to speed up development.