No description
Find a file
PJ Fanning 7bee80e058
mapAsyncPartitioned / mapAsyncPartitionedUnordered (#561)
* Create MapAsyncPartition.scala

add license

add test

Update LICENSE

try to fix test

* Update MapAsyncPartitionSpec.scala

wip

Update MapAsyncPartition.scala

wip

* changes to get code to compile with scala 2.12

* more tests

scalafmt

* Update MapAsyncPartition.scala

* make code more closely match the Akka API

java

Update Flow.scala

more java api

* Add ordered version of the operator

* Fix formatting

* update docs

* test null function result

* java api

* add back code to get scala 2.12 compile working again

* Unify mapAsyncPartitioned implementations

* remove special license

Update CopyrightHeader.scala

* java tests

javafmt

* update docs

update tests

update javadoc

---------

Co-authored-by: Jacek Sokol <jacek@scalabs.pl>
2023-09-21 18:35:39 +01:00
.github =build Use zulu in nightly build to test jdk21. 2023-09-20 18:09:50 +08:00
actor/src/main =act Extract AtomicCancellable in Scheduler. 2023-08-29 15:06:31 +08:00
actor-testkit-typed/src replace use of Akka in comments (#516) 2023-07-31 11:06:17 +01:00
actor-tests/src/test =test Skip ForkJoinPoolStarvationSpec on JDK 21. 2023-09-20 23:57:26 +08:00
actor-typed/src/main Removing unused import 2023-09-17 14:57:50 +08:00
actor-typed-tests/src/test format source with scalafmt, #509 2023-07-30 11:54:51 +02:00
bench-jmh =str Deprecate statefulMapConcat operator. 2023-09-02 00:50:10 +08:00
cluster Yet more Akka version numbers in deprecation warnings (#545) 2023-08-07 00:47:04 +01:00
cluster-metrics/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
cluster-sharding/src =str Makes use of the statefulMap to make code simpler. 2023-08-31 23:28:01 +08:00
cluster-sharding-typed/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
cluster-tools/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
cluster-typed/src Yet more Akka version numbers in deprecation warnings (#545) 2023-08-07 00:47:04 +01:00
coordination/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
discovery/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
distributed-data/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
docs/src mapAsyncPartitioned / mapAsyncPartitionedUnordered (#561) 2023-09-21 18:35:39 +01:00
kubernetes Try running Aeron tests again (#31172) 2022-02-22 12:56:29 +01:00
legal protobuf-java 3.19.6 (#636) 2023-09-08 11:54:30 +01:00
multi-node-testkit/src/main =test Switch pattern matching cases in Player. 2023-09-07 00:08:00 +08:00
osgi/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
persistence/src Yet more Akka version numbers in deprecation warnings (#545) 2023-08-07 00:47:04 +01:00
persistence-query/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
persistence-shared/src/test/scala/org/apache/pekko/persistence adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
persistence-tck/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
persistence-testkit/src =str Makes use of the statefulMap to make code simpler. 2023-08-31 23:28:01 +08:00
persistence-typed/src format source with scalafmt, #509 2023-07-30 11:54:51 +02:00
persistence-typed-tests/src/test adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
pki/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
plugins/serialversion-remover-plugin/src/main adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
project mapAsyncPartitioned / mapAsyncPartitionedUnordered (#561) 2023-09-21 18:35:39 +01:00
remote/src =remote Drop the blocking usage. 2023-09-19 00:00:54 +08:00
remote-tests/src Migrate the classic transport to Netty 4 without CVEs (#643) 2023-09-16 02:24:28 +08:00
scripts link validation job fails (#640) 2023-09-08 23:32:23 +01:00
serialization-jackson/src fix incorrect config name (serialization-jackson) (#567) 2023-08-14 09:22:37 +01:00
slf4j/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
stream/src/main mapAsyncPartitioned / mapAsyncPartitionedUnordered (#561) 2023-09-21 18:35:39 +01:00
stream-testkit/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
stream-tests/src/test mapAsyncPartitioned / mapAsyncPartitionedUnordered (#561) 2023-09-21 18:35:39 +01:00
stream-tests-tck/src/test adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
stream-typed/src adjust ASF header (#450) 2023-06-22 14:19:26 +01:00
stream-typed-tests/src/test/scala/org/apache/pekko/stream mapAsyncPartitioned / mapAsyncPartitionedUnordered (#561) 2023-09-21 18:35:39 +01:00
testkit/src =test Fix ssl relative tests on Windows. 2023-09-16 04:10:10 +08:00
.asf.yaml protect 1.0.x branch (#513) 2023-07-30 15:46:09 +01:00
.git-blame-ignore-revs Add newline to .git-blame-ignore-revs 2023-08-03 11:43:48 +02:00
.gitattributes Add .gitattributes to enforce unix line endings 2022-11-05 15:01:03 +01:00
.gitignore Remove jar from source repo (#340) 2023-05-24 23:10:06 +01:00
.jvmopts-ci workaround-removal-biased-locking (#466) 2023-07-03 15:40:13 +01:00
.sbt-java-formatter.conf Rename akka package to org.apache.pekko 2022-11-30 16:45:15 +01:00
.sbtopts Use GhExcludeTest in CI again (#30941) 2021-11-28 19:52:16 +01:00
.scala-steward.conf Update .scala-steward.conf to remove old pinning (#519) 2023-07-31 20:09:25 +01:00
.scalafix.conf Migrate the classic transport to Netty 4 without CVEs (#643) 2023-09-16 02:24:28 +08:00
.scalafmt.conf =sbt update scalafmt to 3.7.14 2023-09-18 17:50:40 +08:00
build.sbt mapAsyncPartitioned / mapAsyncPartitionedUnordered (#561) 2023-09-21 18:35:39 +01:00
CONTRIBUTING.md Rename verifyCodeStyle to checkCodeStyle 2023-08-15 19:15:42 +08:00
COPYING.protobuf
DISCLAIMER add DISCLAIMER (#160) 2023-02-10 10:52:20 +01:00
KEYS Fix key for mdedetrich@apache.org 2023-07-27 12:57:43 +02:00
LICENSE remove shaded protobuf-java v2 jar (pekko-protobuf) (#489) 2023-08-01 11:35:58 +01:00
NOTICE update license to note uuid comparator code (#420) 2023-06-19 17:51:24 +01:00
README.md Add testQuickUntilPassed 2023-07-06 18:39:46 +02:00

Apache Pekko

Nightly Builds Nightly Aeron Tests

Apache Pekko is an open-source framework for building applications that are concurrent, distributed, resilient and elastic. Pekko uses the Actor Model to provide more intuitive high-level abstractions for concurrency. Using these abstractions, Pekko also provides libraries for persistence, streams, HTTP, and more.

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

Reference Documentation

See https://pekko.apache.org for the documentation including the API docs. The docs for all the Apache Pekko modules can be found there.

Building from Source

Prerequisites

  • Make sure you have installed a Java Development Kit (JDK) version 11 or later.
  • Make sure you have sbt installed and using this JDK.
  • Make sure you also have Java 8 installed (JDK or JRE).
  • Graphviz is needed for the scaladoc generation build task, which is part of the release.

Running the Build

  • Open a command window and change directory to your preferred base directory
  • Use git to clone the repo or download a source release from https://pekko.apache.org (and unzip or untar it, as appropriate)
  • Change directory to the directory where you installed the source (you should have a file called 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 Scala
  • sbt test will compile the code and run the unit tests
  • sbt testQuick similar to test but when repeated in shell mode will only run failing tests
  • sbt testQuickUntilPassed similar to testQuick but will loop until tests pass.
  • sbt package will build the jars
    • the jars will built into target dirs of the various modules
    • for the the 'actor' module, the jar will be built to actor/target/scala-2.13/
  • sbt publishLocal will push the jars to your local Apache Ivy repository
  • sbt publishM2 will push the jars to your local Apache Maven repository
  • sbt docs/paradox will build the docs (the ones describing the module features)
    • Requires Java 11 minimum
    • sbt docs/paradoxBrowse does the same but will open the docs in your browser when complete
    • the index.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)
    • the index.html file will appear in target/scala-2.13/unidoc/
  • sbt sourceDistGenerate will generate source release to target/dist/
  • The version number that appears in filenames and docs is derived, by default. The derived version contains the most git commit id or the date/time (if the directory is not under git control).
    • You can set the version number explicitly when running sbt commands
      • eg 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"

Community

There are several ways to interact with the Pekko community:

  • GitHub discussions: for questions and general discussion.
  • Pekko dev mailing list: for Pekko development discussions.
  • Pekko users mailing list: for Pekko user discussions.
  • GitHub issues: for bug reports and feature requests. Please search the existing issues before creating new ones. If you are unsure whether you have found a bug, consider asking in GitHub discussions or the mailing list first.

Contributing

Contributions are very welcome. If you have an idea on how to improve Pekko, don't hesitate to create an issue or submit a pull request.

See CONTRIBUTING.md for details on the development workflow and how to create your pull request.

Code of Conduct

Apache Pekko is governed by the Apache code of conduct. By participating in this project you agree to abide by its terms.

License

Apache Pekko is available under the Apache License, version 2.0. See LICENSE file for details.