apache / pekko-http

The Streaming-first HTTP server/module of Apache Pekko
https://pekko.apache.org/
Apache License 2.0
148 stars 34 forks source link
http http-client http-server http2 pekko pekko-http reactive streaming websocket

Apache Pekko HTTP

The Pekko HTTP modules implement a full server- and client-side HTTP stack on top of pekko-actor and pekko-stream. It's not a web-framework but rather a more general toolkit for providing and consuming HTTP-based services. While interaction with a browser is of course also in scope it is not the primary focus of Pekko HTTP.

Pekko HTTP is a fork of Akka HTTP 10.2.x release, prior to the Akka project's adoption of the Business Source License.

Pekko HTTP follows a rather open design and many times offers several different API levels for "doing the same thing". You get to pick the API level of abstraction that is most suitable for your application. This means that, if you have trouble achieving something using a high-level API, there's a good chance that you can get it done with a low-level API, which offers more flexibility but might require you to write more application code.

Documentation

The documentation is available at pekko.apache.org, for Scala and Java.

Building from Source

Prerequisites

h2spec

Some tests for HTTP/2 compliance use h2spec. The sbt build downloads pre-built binaries from the GitHub releases page for the h2spec project. These binaries are not available for all operating systems. Apple Mac Silicon users may need to install Rosetta if they do not have it installed already.

Running the Build

Community

If you have questions about the contribution process or discuss specific issues, please interact with the community using the following resources.

Contributing

Contributions are very welcome!

If you see an issue that you'd like to see fixed, the best way to make it happen is to help out by submitting a pull request. For ideas of where to contribute, tickets marked as "help wanted" are a good starting point.

Refer to the CONTRIBUTING.md file for more details about the workflow, and general hints on how to prepare your pull request. You can also ask for clarifications or guidance in GitHub issues directly.

License

Apache Pekko HTTP is Open Source and available under the Apache 2 License.