Page 1 of 1

Brainstorm: bounty for auto-generated client libraries

Posted: Fri Mar 28, 2014 9:26 pm
by indolering
We have been seeing a LOT of duplicated effort in two areas:
  • NamecoinToBind (MeowBit, DNSChain)
  • RPC libraries (basically everyone)
Most of the libraries we use are based off of Bitcoin libraries, which is already a huge de-duplication of effort. However, the ease of the problem makes for slap-dash solutions. I've noticed to major pain points:

No (unit) Testing It's easy to add commands to a list but the commands the original author needs will get tested. From personal experience, I've had to track down weird bugs in these libraries and the best I could get upstreamed were odd hacks.

Unpleasant API The libs I've used tend to shuttle off simple CLI strings and do not handle config detection, connection checks, etc. Sadly, custom convenience libraries do not make it upstream.

I'll stick to JSON-RPC, as I've used some libraries and written one myself. We could write a bounty specifying the creation of an interface definition which auto generates client libraries in the target languages using Barrister RPC. I don't know how much abstraction (such parameters for the command line arguments) can be built into such an interface. Perhaps we could have another bounty for a Haxe library to handle cross-platform config discovery and whatever else cannot be handled in the RPC generation library.

However, I have no experience with either solution and I don't know if any of this could extended to NamecoinToBind. My only firm requirement would be basic unit testing of all the commands. So pitch in with ideas/comments you have!