7e585bf63d
This reverts commit 38db11e5077c163f84cff85fd40e91a24bddfc76. Sonatype is making it painful for me to publish this release (they no longer accept my credentials) so it might be a while until it gets done. |
||
---|---|---|
.github/workflows | ||
.run | ||
benchmark | ||
cmake | ||
compiler | ||
examples | ||
runtime | ||
runtime-rpc | ||
security-advisories | ||
website | ||
.gitignore | ||
.gitlab-ci.yml | ||
CHANGELOG.md | ||
CONTRIBUTORS | ||
do_benchmarks.bash | ||
foo.raw | ||
gen | ||
jitpack.yml | ||
LICENSE | ||
Makefile | ||
pom.xml | ||
README.md | ||
RELEASE-PROCESS.md |
capnproto-java: Cap'n Proto for Java
Cap'n Proto is an extremely efficient protocol for sharing data and capabilities, and capnproto-java is a pure Java implementation.
This repository clone adds an implementation of the RPC framework for Java.
Promise pipelining is provided via java.util.concurrent.CompletableFuture. Unlike the KJ asynchronous model, which completes promises only when they are waited upon, a CompletableFuture can complete immediately. This may break E-ordering, as the C++ implementation relies on kj::evalLater() to defer method calls and this implementation may have subtle differences.
Most of the C++ RPC test cases have been ported to this implementation, which gives me some comfort that the implementation logic is correct, but more extensive testing is required.
This implementation does not support generic interfaces. Extending the schema compiler to output code for generic interfaces is an exercise I leave to the reader.