Do not mask errors in parse().
Better params names.
Successfully returns a formatted error if the parsing fails.
Use Bluebird.map() instead of lodash.map().
exec() can be used without a writer.
JsonRpc.stream().
HTTP example.