The jsonrpc_client is used to generate the RPC api methods from their definitions. This technique helps us stick to the DRY principle very easily.
The Borsh serialization package which is itself divided in two packages borsh and borsh_annotation. The former is a code generator that generates borsh serialization and deserialization for a Dart class. And the latter is an annotation used to annotate these classes.