Rest.li is the top layer of a larger software stack code named ‘pegasus’. Pegasus is comprised of the following major components.
The pegasus data layer provides an in-memory data representation structurally equivalent to JSON, serialization to/from JSON format, and a schema-definition language for specifying data format.
The pegasus data template code generation tool generates type-safe Java APIs for manipulating pegasus data objects.
The pegasus request/response layer provides fully asynchronous abstractions for transport protocols, along with implementations for HTTP based on Netty and Jetty.
The pegasus dynamic discovery layer uses Apache Zookeeper to maintain cluster information. D2 provides client-side software load balancing.
The pegasus Rest.li framework provides a simple framework for building and consuming RESTful resources. Rest.li provides resource patterns that streamline common CRUD use cases for collections of entities and associations between entities.