Welcome to petrel.

Complex software systems are often build as distributed collections of small services - or micro services. When building those services you and your team need to focus on implementing the business logic. You want to be fast and flexible. You want things to be stable and scalable. But you don't want to spend weeks in writing low level event based network code in your beloved C++. Of course, deployments need to by as simple and dynamic as possible because your release cycles are supposed to be very short.
-- This is where petrel comes in.

What is petrel?

Contributing to petrel

As petrel is an open source project under the MIT license, contributions are more than welcome! Please read the Developer Guide to learn how to setup a development environment and how to submit patches.

Architecture

The following diagram shows the internal design of petrel. It embeds lua and uses a couple of libraries to implement the http and http2 protocols as well as fibers and network/disk IO. Check out the github page for detailed build instructions of petrel and the dependencies.

petrel architecture

Read more about how petrel works...