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.
The documentation is available at pekko.apache.org, for Scala and Java.
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.
build.sbt
in this directory)sbt compile
compiles the main source for project default version of Scala (2.13)sbt +compile
will compile for all supported versions of Scalasbt test
will compile the code and run the unit testssbt testQuick
similar to test
but when repeated in shell mode will only run failing testssbt package
will build the jarshttp-core/target/scala-2.13/
sbt publishLocal
will push the jars to your local Apache Ivy repositorysbt publishM2
will push the jars to your local Apache Maven repositorysbt docs/paradox
will build the docs (the ones describing the module features)sbt docs/paradoxBrowse
does the same but will open the docs in your browser when completeindex.html
file will appear in target/paradox/site/main/
sbt unidoc
will build the Javadocs for all the modules and load them to one place (may require Graphviz, see Prerequisites above)index.html
file will appear in target/scala-2.13/unidoc/
sbt sourceDistGenerate
will generate source release to target/dist/
You can set the version number explicitly when running sbt commands
sbt "set ThisBuild / version := \"1.0.0\"; sourceDistGenerate"
Or you can add a file called version.sbt
to the same directory that has the build.sbt
containing something like
ThisBuild / version := "1.0.0"
If you have questions about the contribution process or discuss specific issues, please interact with the community using the following resources.
Download Details:
Author: apache
Official Github: https://github.com/apache/incubator-pekko-http
License: Apache-2.0 license