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
library for offline generation of Substrate transactions.
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
py-substrate-interface is a Python library for interacting with the Substrate RPC. It supports a wide range of capabilities and powers the Polkascan multi-chain block explorer. This library is maintained by Polkascan Foundation.