AltSysrq / fourleaf

Serialisation format and library for Rust.
Apache License 2.0
9 stars 1 forks source link

Interoperability and serde #2

Closed tailhook closed 6 years ago

tailhook commented 6 years ago

Hi,

For a context, I'm author of a probor which is super similar in many aspects to this crate. And it would be fine if we could combine our efforts.

The idea behind probor is to use CBOR as serialization but use numbers instead of fields names for representing structures (unlike JSON, cbor allows mapping with numeric keys). This gives the advantage that CBOR is a known standard, and it's easy to write a parser in any language which has cbor implementation. And I believe it would give same size of serialized data.

I like your syntax of macros more, though.


So the questions are:

  1. Is there any plans to expose fourleaf format to other languages?
  2. What do you think of my approach (i.e. potentially integrated into this crate, instead of custom format)?
  3. Any plans on this crate at all? I.e. it has missing derive impl (macros 1.1), and maybe serde support, and overall looks pretty stale (to be fair, probor isn't updated very often too)
AltSysrq commented 6 years ago

Apologies for my delayed response.

Is there any plans to expose fourleaf format to other languages?

Not right now.

What do you think of my approach

I just skimmed the documentation, but it does sound like a happy medium between the alternatives discussed.

instead of custom format

I'm pretty much stuck with fourleaf's binary format because me and the other users of its only use-site have terabytes of encrypted data in this format.

It's also worth pointing out that ensync actually used CBOR originally. Fourleaf came about as a result of running into CBOR's maximum blob size limit. Other concerns like preserving unknown fields I only discovered while developing fourleaf.

Any plans on this crate at all

It hasn't changed much because it's been completely adequate for its current use (which is quite active in terms of code execution). See #1 for details about serde support. It's something I'm sort of planning on adding eventually, but there hasn't been much impetus for it since fourleaf fills such an extremely narrow niche.

tailhook commented 6 years ago

Fourleaf came about as a result of running into CBOR's maximum blob size limit

Isn't 64bit maximum blob size enough for everyone? Was it some implementation limitation?

AltSysrq commented 6 years ago

https://tools.ietf.org/html/rfc7049#section-2.1

Huh, I guess it was an implementation limitation.

tailhook commented 6 years ago

Okay. Thanks for the explanation!