nanopack-buffer / cxx-nanopack

NanoPack is a simple binary serialization format
MIT License
2 stars 0 forks source link

Nanopack justification of existence #3

Open Liastre opened 4 months ago

Liastre commented 4 months ago

Good day,

Appreciate your work, I was looking into your Poly project to take some approaches, since I'm working on same architecture kind of project. Basically I need my separate view to interact with native backend via messages and I need to generate code in C++ and TS. So I'm wondering if you ever considered to use capnproto (https://github.com/capnproto/capnproto), since it basically supports all you need (https://polygui.org/nanopack/introduction/), like inheritance in opposite to protobuf. It have custom generators, so what you need to do is to write your own generator (https://capnproto.org/otherlang.html#how-to-write-compiler-plugins).

I'm not saying that you're wrong, but does it really worth to support your own message format is there any significant benefits?

kennethnym commented 4 months ago

thanks for your question. i have indeed looked into cap'n'proto before deciding on creating nanopack. here are my thoughts:

since nanopack is such a lightweight serialization format, it is easy on my end to support. you can try using nanopack for your project, but it is not stable, and i recommend you compile nanoc from the latest commit on main.

please let me know if you run into any issue.

kennethnym commented 4 months ago

also, the README in this repo is not up-to-date. i rewrote nanoc in go, and the source code is here: https://github.com/poly-gui/nanoc.

kennethnym commented 4 months ago

now that you've said it, cnp might potentially be faster... i will play around with it

kennethnym commented 4 months ago

nah, i dont think cnp will be faster :)

edit: it may be faster, but i don't think it is worth the additional complexity. i quite enjoy the simplicity of nanopack, and it has tons of rooms of optimization, as i have done exactly zero optimization work, and it is already faster than protobuf.