This will be a short one. I have recently released a family of WWW::GCloud modules for accessing Google Cloud services. Their REST API is, apparently, JSON-based. So, I made use of the existing JSON::Class. Unfortunately, it was missing some features critically needed for my work project. I implemented a couple of workarounds, but still felt like it’s not the way it has to be. Something akin to LibXML::Class would be great to have…
There was a big “but” in this. We already have XML::Class, LibXML::Class, and the current JSON::Class. All are responsible for doing basically the same thing: de-/serializing classes. If I wanted another JSON serializer then I had to take into account that JSON::Class is already taken. There are three ways to deal with it:
- Branch the current
JSON::Classand re-implement it as a backward-incompatible version. - Give the new module a different name.
- Implement own version and publish it under my name.
The first two options didn’t appeal to me. The third one is now about to happen.
I expect it to be a stress-test for Raku ecosystem as, up to my knowledge, it’s going to be the first case where two different modules share the same name but not publishers.
As a little reminder:
- To use the old module one would have to have
JSON::Class:auth<zef:jonathanstowe>in their dependencies and, perhaps, in theirusestatement. - The new module will be available as
JSON::Class:auth<zef:vrurg>.
There is still some time before I publish it because the documentation is not ready yet.
Let’s 🤞🏻.
Comments