There are a number of language-specific client libraries that can be used to interact with Substrate-based blockchains. In general, the capabilities that these libraries expose are implemented on top of the Substrate remote procedure call (RPC) API.
The Polkadot JS team maintains a rich set of tools for interacting with Substrate-based blockchains. Refer to the main Polkadot JS page to learn more about that suite of tools.
Parity also maintains
Usetech also maintains Polkadot API CPP, which is a C++ library for interacting with the Substrate RPC.
substrate-subxt, which is a Rust library specifically designed for submitting extrinsics to Substrate blockchains. The the Substrate API Client is another Substrate client library for Rust that is maintained by Supercomputing Systems; its API is more general-purpose than