My main interest is that it's been hard to make a case for Capnproto in a 
multi-language development environment, when the majority language is Java. 
I must confess that I am mostly a C++ developer, and haven't done any 
serious Java work for years, and this looked like a nicely sized problem to 
re-acquaint myself with the language.
 
No docs yet, but I have a bunch of RPC test cases, and the Calculator 
example could be added to the examples project. I'm at an impass currently, 
deciding whether to dump CompletableFutures altogether and replace with a 
home-grown futures library, which would change the API significantly. My 
implementation doesn't use the concurrent features of CompletableFutures 
(except for socket calls), so there's a bunch of unnecessary thread-safety 
operations going on, and also Capnproto is picky about the order in which 
events complete, whereas CompletableFutures very much take a YOLO approach 
to completion order. That made made, for example, QueuedClient tricky to 
get right and I'm still not entirely confident about it.

Changes to the existing code have, fortunately, been fairly limited. The 
most intrusive change was to keep track of a cap-table context in builders, 
readers and arenas, but I think I've achieved that without affecting the 
existing API. AnyPointers have gained a method or two. Otherwise pretty 
much everything else is new and separate code - the RPC implementation 
itself is a separate library,  as it should be! On the compiler side, it's 
mostly been a case of rendering the interface types and adding pipelines, 
so existing code hasn't been touched outside of the previously 
unimplemented switch branches. That may be less true once generics enter 
the picture.

The new code probably requires a recent (14+?) Java compiler version.

cheers,
Vaci

On Monday, 30 November 2020 at 22:26:48 UTC [email protected] wrote:

> This is great!
>
> Out of curiosity, do you have a specific use case you're building for?
>
> Do you have any RPC-specific documentation or examples yet?
>
> I notice this is implemented as a fork of the existing capnproto-java. Did 
> you have to make changes to the existing code? Is the API compatible?
>
> I agree with Ian that FD passing probably isn't going to be important to 
> Java users, so I wouldn't bother too much with it.
>
> +David Renshaw, have you looked at this at all?
>
> -Kenton
>

-- 
You received this message because you are subscribed to the Google Groups 
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/capnproto/6e4ebe50-1dc5-450d-bf05-6df063fd1a6dn%40googlegroups.com.

Reply via email to