> ## Documentation Index
> Fetch the complete documentation index at: https://lightprotocol-migration.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Program Development

> Overview to on-chain program development. Quick access to SDKs for Anchor, Pinocchio, or native Rust.

ZK Compression's Rust crates are published to [crates.io](https://docs.rs/releases/search?query=zk+compression) and can be found on [docs.rs](https://crates.io/search?q=zk%20compression) with the `light-` prefix.

### Rust Crates

* [`light-sdk`](https://github.com/Lightprotocol/light-protocol/tree/main/sdk-libs/sdk) — For Anchor and native programs. Includes CPI utilities, compressed account abstractions similar to anchor Account, and metadata structs for CPIs to the Light System program.
* [`light-sdk-pinocchio`](https://github.com/Lightprotocol/light-protocol/tree/main/sdk-libs/sdk-pinocchio) — For Pinocchio programs. Pinocchio-optimized SDK with compressed account abstractions and CPI utilities.

### Light Programs Overview

<Info>
  Your custom program invokes the *Light system program* via Cross-Program Invocation (CPI) to leverage ZK Compression.
</Info>

| Program                                                                                                       | Description                                                                                                                                                                                |
| :------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [light-system-program](https://github.com/Lightprotocol/light-protocol/tree/main/programs/system)             | Enforces compressed account layout, ownership checks, and validity proof verification. Used to create/write compressed accounts and PDAs.                                                  |
| [light-compressed-token](https://crates.io/crates/light-compressed-token)                                     | SPL-compatible compressed token implementation with arbitrary compression/decompression support.                                                                                           |
| [account-compression](https://github.com/Lightprotocol/light-protocol/tree/main/programs/account-compression) | State and address tree implementation used by the Light System program. Clients and custom programs do not interact with the Account Compression Program — this is handled under the hood. |

### Version Requirements

These are the required version for program development.

* **Rust**: 1.86.0 or later
* **Solana CLI**: 2.2.15
* **Anchor CLI**: 0.31.1
* **Zk compression CLI**: 0.27.0 or later
* **Node.js**: 23.5.0 or later

<CardGroup cols={1}>
  <Card horizontal icon="book" title="Install the Solana CLI and Anchor with one command" href="https://solana.com/developers/guides/getstarted/setup-local-development">
    solana.com
  </Card>
</CardGroup>

<CardGroup cols={1}>
  <Card horizontal icon="terminal" title="CLI Installation" href="/resources/cli-installation" />
</CardGroup>

### Program Examples

<Card horizontal icon="code" title="Program Examples" href="/compressed-pdas/program-examples" />

### Build your own program

Get an overview of compressed PDAs and create your custom program.

<Card horizontal icon="circle-plus" title="Create a Program with Compressed PDAs" href="/compressed-pdas/create-a-program-with-compressed-pdas" />
