4 ms·
Don't bother, go directly to cap'n proto: https://capnproto.org https://capnproto.org
by rkwasny 11y ago
Don't bother, go directly to cap'n proto:
https://capnproto.org https://capnproto.org
- vvanders 11y agoLast I looked cap'n proto didn't have any msvc support.
- eco 11y agoThe last release added it (partially). "The core serialization functionality sufficient for 90% of users is available, but reflection and RPC APIs are not."
- moonchrome 11y agoSo Python API still doesn't work on Windows ? (AFAIK it's using reflection bindings from C++ ?)
- cmdrfred 11y agoLets play Cap'n proto documentation or Disney film catchphrase! 1. "If the pattern holds, there will be an infinite number of releases before the end of this month." 2. "Infinity Faster!" 3. "To infinity and beyond!" ɹɐǝʎʇɥƃıן zznq s,ʎǝusıp sı Ɛ :ɹǝsʍu∀
- moonchrome 11y agoThere are a couple of reasons I chose FB over Can'n Proto, Python and full C++ doesn't work on MSVC/Windows (this might have changed recently especially given the Clang compiler integration into MS backend) Second problem is Capnproto doesn't have structs, ie. you want something like struct Vec3 {x: float, y: float, z: float} in CapnProto you have to either make Vec3 a ref type (+ pointer size and lookup indirection for each instance) or inline it manually (especially annoying given that you must manually number CapnProto fields, maybe this is a benefit in some use cases but it's of no use to me and only creates work). CapnProto is much bigger as well - it includes it's own RPC/distributed object protocol and library - the serialization part isn't separate they are in one library - that's taking in a lot of useless code that you would have to figure out if you decided to maintain it. Also worth noting FlatBuffers on Python are actually not that fast because they are pure-python - there are Cython versions in the PR (at least last time I checked) - this doesn't matter in my use case but worth pointing out. And the Python API is very very unpythonic (C style API with even the naming completely off from PEP8) compared to CapnProto which is excellent ! I needed a cross language typed serialization format for binary files and FlatBuffers is better for that than CapnProto IMO.
- dwrensha 11y ago> the serialization part isn't separate they are in one library Although Cap'n Proto's C++ implementation is hosted in a single git repository, it does compile to several distinct libraries. You can use just the core serialization/deserialization part, libcapnp, if that's all you need. There are separate components, libcapnpc and libcapnp-rpc, for dynamic reflection and the object-capability remote procedure call system.