Hi all,
as it recently came up on the IoTDB project list, I would like to bring up the
question here, how we are planning on providing TsFile in multiple Languages.
I guess in general there are two options:
* Mono-Repo (like in PLC4X) where one build builds the various
implementations.
* One repo for each language.
Both have their advantages and disadvantages.
Pro Mono-Repo:
* Projects are better aligned.
* One build to maintain
* One release to vote on
Con Mono-Repo:
* Maintaining the build is harder
Pro Multi-Repo:
* Simpler to setup
Con Mono-Repo:
* Might be more challenging to keep all repos aligned.
* Releases of all languages challenging
* Either only some modules are released at at time.
* Or RM needs to maintain a system that releases all types.
* Multiple ways to release the various element.
* One release vote per supported Language (Or the validation, checking of
signatures and hashes, RAT etc. for each language)
I think we could borrow a lot from what we currently have in PLC4X, as we
wouldn’t have to re-invent the wheel. At least, we already have everything we
would need for:
* Java
* C
* C++
* Python
* C#
* Go
* Rust
And another thing Julian (Feinauer) was working on: Using the PLC4X
code-generation to produce TsFile parsers/serialisers in all languages
supported by PLC4X (However I don’t quite know how far his work progressed)
If we had a formal specification of the TsFile format and we could generate the
clients in various languages from that, I think this would be a HUGE benefit
for the project, as we could ensure the libraries are more aligned.
So … enough texting … now I would love to hear your thoughts on this :-)
Chris