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.
