Why is vibe.d json serializer/deserializer so complex?

James Blachly james.blachly at gmail.com
Sat Oct 31 22:42:20 UTC 2020

On 10/30/20 1:56 PM, Steven Schveighoffer wrote:
> I was looking to report an enhancement request to vibe.data.json (filed 
> here: https://github.com/vibe-d/vibe.d/issues/2490), and I started 
> looking at the serialization code for vibe. It's really really 
> complicated, and I'm just wondering if this is a case of 
> overengineering, or if there's a logic behind making this so 
> complicated. My iopipejson serializer is super simple comparatively.
> Is there a benefit to having all the complexity? I know they support 
> both json and bson, but I cannot follow the code very well, and I'm not 
> sure what happens where, and which types are responsible for what.
> -Steve

So I've been meaning to ask this as I have been learning Rust off-and-on 
recently for web development, and was impressed by the traits 
functionality. In particular, with traits and some agreed upon API, many 
packages are interchangeable in terms of various functionalities, 
including JSON serialization/deserialization.

What would be the nearest analog facility in D -- supposing we could 
agree on a standard API -- to facilitate pluggable serializers?

I am a big fan of asdf (and Steve, haven't tried iopipejson yet, but 
will do). It would be nice to not rewrite code to try a different 
serializer, and Rust is really neat in this regard.

More information about the Digitalmars-d-learn mailing list