---
title: Rust SDK
description: Learn how to use Solana's Rust crates for development.
h1: Rust SDKs for Solana
---

Solana's Rust crates are
[published to crates.io](https://crates.io/search?q=solana-) and can be found
[on docs.rs](https://docs.rs/releases/search?query=solana-) with the `solana-`
prefix.

## Rust Crates

The following are the most important and commonly used Rust crates for Solana
development:

- [`solana-program`] &mdash; Imported by programs running on Solana, compiled to
  SBF. This crate contains many fundamental data types and is re-exported from
  [`solana-sdk`], which cannot be imported from a Solana program.

- [`solana-sdk`] &mdash; The basic offchain SDK, it re-exports
  [`solana-program`] and adds more APIs on top of that. Most Solana programs
  that do not run on-chain will import this.

- [`solana-client`] &mdash; For interacting with a Solana node via the
  [JSON RPC API](/docs/rpc).

- [`solana-cli-config`] &mdash; Loading and saving the Solana CLI configuration
  file.

- [`solana-clap-utils`] &mdash; Routines for setting up a CLI, using [`clap`],
  as used by the main Solana CLI. Includes functions for loading all types of
  signers supported by the CLI.

[`solana-program`]: https://docs.rs/solana-program
[`solana-sdk`]: https://docs.rs/solana-sdk
[`solana-client`]: https://docs.rs/solana-client
[`solana-cli-config`]: https://docs.rs/solana-cli-config
[`solana-clap-utils`]: https://docs.rs/solana-clap-utils
[`clap`]: https://docs.rs/clap

## Installation

For sending transactions and interacting with Solana:

```shell title="Terminal"
cargo add solana-sdk solana-client
```

Building solana programs, install:

```shell title="Terminal"
cargo add solana-program
```