> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rust SDK

> RPC, WebSocket, Yellowstone gRPC ve Jetstream için yeniden deneme, yedek uç nokta ve yeniden bağlanma yerleşik olan tiplenmiş istemcilerle üretim ajanları ve indeksleyicileri Rust ile oluşturun.

Prototip aşamasını geçip üretim arka planı, indeksleyici, ticaret botu veya uzun süreli bir ajan işçisi yayınlarken Rust SDK’ya başvurun. Ham HTTP istekleri, gRPC kanalları ve WebSocket bağlantılarını kendiniz yönetmek yerine SDK; bağlantı yaşam döngüsü, kimlik doğrulama, yeniden denemeler, yedek uç nokta ve yeniden bağlanmayı tertemiz bir API’nin arkasında halleder.

<Tip>
  Claude Code veya Cursor’da etkileşimli ajan iş akışları için [MCP sunucusunu](/tr/agents/mcp) tercih edin. Kabuk betikleri ve CI için [CLI](/tr/agents/cli) daha uygundur. SDK, ajanlarınızın *yazdığı* bağımsız çalışan üretim kodu içindir.
</Tip>

## Kurulum

```bash theme={null}
cargo add orbitflare-sdk                          # yalnızca RPC
cargo add orbitflare-sdk --features ws            # + WebSocket
cargo add orbitflare-sdk --features grpc          # + Yellowstone gRPC
cargo add orbitflare-sdk --features jetstream      # + Jetstream
```

Gerektiğinde özellikleri birleştirin; örn. her iki yüzeye de abone olan bir indeksleyici için `--features "ws grpc"`.

## Neler dahil

| Hizmet                 | Ne yapar                                                                                                             |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **RPC**                | Yaygın Solana yöntemleri için tiplenmiş yardımcılar ve ham kaçış noktaları içeren JSON-RPC istemcisi                 |
| **WebSocket**          | Yeniden bağlanmada otomatik yeniden abonelik ile hesaplar, günlükler, slotlar, imzalar                               |
| **gRPC (Yellowstone)** | İşlemler, hesaplar, slotlar ve bloklar için Yellowstone Geyser akışı. YAML yapılandırması veya programatik filtreler |
| **JetStream**          | gRPC akışları olarak OrbitFlare’ın çözümlenmiş shred’leri. Yellowstone ile aynı istemci deseni, farklı proto         |

## Ortam değişkenleri

Uç noktaları açıkça geçmezseniz SDK ortamdan okur. Ajan tarafından üretilen kod için önerilen desendir: ajan URL veya anahtarları sabitlemek zorunda kalmaz, aynı ikili bölgeler ve ağlar arasında çalışır.

| Değişken                   | Kullanan       | Amaç                                     |
| -------------------------- | -------------- | ---------------------------------------- |
| `ORBITFLARE_LICENSE_KEY`   | RPC, WebSocket | Uç nokta URL’lerine eklenen API anahtarı |
| `ORBITFLARE_RPC_URL`       | RPC            | `.url()` çağrılmazsa varsayılan uç nokta |
| `ORBITFLARE_WS_URL`        | WebSocket      | `.url()` çağrılmazsa varsayılan uç nokta |
| `ORBITFLARE_GRPC_URL`      | gRPC           | `.url()` çağrılmazsa varsayılan uç nokta |
| `ORBITFLARE_JETSTREAM_URL` | JetStream      | `.url()` çağrılmazsa varsayılan uç nokta |

## Hızlı örnek

Uç noktasını ortamdan okuyan ve bakiyeyi yeniden deneme / yedek uç nokta ile otomatik sorgulayan minimal bir RPC ajanı:

```rust theme={null}
use orbitflare_sdk::{RpcClientBuilder, Result};

#[tokio::main]
async fn main() -> Result<()> {
    let client = RpcClientBuilder::new().build()?;     // reads ORBITFLARE_RPC_URL + LICENSE_KEY
    let lamports = client.get_balance("Gh9ZwEm...").await?;
    println!("{} SOL", lamports as f64 / 1e9);
    Ok(())
}
```

Açık yedek bölgelerle:

```rust theme={null}
let client = RpcClientBuilder::new()
    .urls(&[
        "http://ny.rpc.orbitflare.com",
        "http://fra.rpc.orbitflare.com",
        "http://ams.rpc.orbitflare.com",
    ])
    .build()?;
```

İlk URL birincil; kalanlar hata halinde sırayla denenen yedeklerdir.

## Yellowstone gRPC ile akış

```rust theme={null}
use orbitflare_sdk::{GeyserClientBuilder, Result};

#[tokio::main]
async fn main() -> Result<()> {
    let client = GeyserClientBuilder::new()
        .url("http://fra.rpc.orbitflare.com:10000")
        .build()?;

    let mut stream = client.subscribe_yaml("stream.yml")?;
    while let Some(update) = stream.next().await {
        // process update
    }
    Ok(())
}
```

`subscribe_yaml` filtreleri bir YAML yapılandırmasından okur; programatik filtreler için bunun yerine `client.subscribe(SubscribeRequest { .. })` kullanın. Jetstream istemcisi bu deseni yansıtır. `GeyserClientBuilder` yerine `JetstreamClientBuilder` koyun.

## Ham HTTP yerine SDK kullanma nedenleri

Ajan tarafından yazılan üretim kodunda SDK, yanlış yapılması kolay çapraz kesen kaygıları halleder:

* yapılandırılabilir **üstel geri çekilme ile yeniden denemeler**
* **Çok bölgeli yedek uç nokta**: birincil başarısız olunca yedekler sırayla
* **Kimlik enjeksiyonu**: lisans anahtarı her isteğe eklenir, uç noktada saklanmaz
* **WebSocket yeniden bağlanma**: abonelikler kopma sonrası otomatik yenilenir
* **gRPC kanal yönetimi**: keepalive, yeniden bağlanma, geri çekilme
* **Tiplenmiş yanıtlar**: yaygın yöntemler Rust yapılarına ayrıştırılır; geri kalanı için ham kaçışlar

Bir ajandan OrbitFlare entegrasyonu yazdırırken onu SDK’ya yönlendirin; sonuç kod küçük, idiomatik ve dayanıklı kalır.

## Kaynak

* SDK deposu: [github.com/orbitflare/orbitflare-sdk-rs](https://github.com/orbitflare/orbitflare-sdk-rs)
* Tam referans: [SDK genel bakış](/tr/sdk/overview), [RPC](/tr/sdk/rust-rpc), [WebSocket](/tr/sdk/rust-websocket), [gRPC](/tr/sdk/rust-grpc), [Jetstream](/tr/sdk/rust-jetstream)
