I often find myself adding a dependency on vibe just for it's Json serialization, however I'd prefer not to pull in the entire library for a number of reasons. The existence of the vmeta [0] package shows I'm not the only one.

Putting vibe.data and vibe.internal in subpackages is quite straightforward: vibe.internal has no dependencies on other packages, and vibe.data only depends on vibe.internal (except for three imports of vibe.core.log. Two are unused [1][2], the other one looks like cruft from a debugging session [3]).

I understand if you don't want vibe split into subpackages, but if you are in favor I'd gladly do the work.

[0] http://code.dlang.org/packages/vmeta
[1] https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/data/bson.d#L11
[2] https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/data/json.d#L845
[3] https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/data/json.d#L1625