Skip to main content

Crate azure_ai_foundry_core

Crate azure_ai_foundry_core 

Source
Expand description

§azure_ai_foundry_core

Crates.io docs.rs License: MIT

Core types, authentication, and HTTP client for the Azure AI Foundry Rust SDK.

This crate provides the foundational building blocks used by all other azure_ai_foundry_* crates.

§Features

  • FoundryClient — HTTP client with builder pattern (get, post, delete, post_multipart, get_bytes)
  • FoundryCredential — Authentication via API key or Microsoft Entra ID
  • FoundryError — Typed error handling with thiserror
  • Retry logic — Automatic retries with exponential backoff for transient errors
  • Tracing — Full instrumentation with tracing spans
  • Security — HTTPS validation, error sanitization, token refresh hardening

§Installation

[dependencies]
azure_ai_foundry_core = "0.8"
tokio = { version = "1", features = ["full"] }

§Usage

§API Key Authentication

use azure_ai_foundry_core::client::FoundryClient;
use azure_ai_foundry_core::auth::FoundryCredential;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = FoundryClient::builder()
        .endpoint("https://your-resource.services.ai.azure.com")
        .credential(FoundryCredential::api_key("your-api-key"))
        .build()?;
    Ok(())
}

§Microsoft Entra ID Authentication

use azure_ai_foundry_core::client::FoundryClient;
use azure_ai_foundry_core::auth::FoundryCredential;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = FoundryClient::builder()
        .endpoint("https://your-resource.services.ai.azure.com")
        .credential(FoundryCredential::developer_tools()?)
        .build()?;
    Ok(())
}

§Environment Variables

The SDK automatically checks these environment variables:

export AZURE_AI_FOUNDRY_ENDPOINT="https://your-resource.services.ai.azure.com"
export AZURE_AI_FOUNDRY_API_KEY="your-key"  # Falls back to Entra ID if not set
use azure_ai_foundry_core::client::FoundryClient;
use azure_ai_foundry_core::auth::FoundryCredential;

let endpoint = std::env::var("AZURE_AI_FOUNDRY_ENDPOINT")?;
let client = FoundryClient::builder()
    .endpoint(endpoint)
    .credential(FoundryCredential::from_env()?)
    .build()?;

§Modules

ModuleDescription
authFoundryCredential for API key and Entra ID authentication
clientFoundryClient builder and HTTP client
errorFoundryError type with typed error variants
modelsCommon types shared across crates

§License

This project is licensed under the MIT License.

Re-exports§

pub use error::FoundryError;

Modules§

auth
Authentication types for Azure AI Foundry.
client
HTTP client for Azure AI Foundry.
error
models
Common types shared across all Azure AI Foundry crates.