Skip to main content

azure-cosmos-rust

"Implement — Azure Cosmos DB SDK for Rust (NoSQL API). Use for document CRUD, queries, containers, and globally distributed"

معلومات المصدر

المستودع
thiagofernandes1987-create/APEX
آخر نشاط في المصدر
١٨ أبريل ٢٠٢٦ في ٠٩:٣٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
azure-cosmos-rust
description
"Implement — Azure Cosmos DB SDK for Rust (NoSQL API). Use for document CRUD, queries, containers, and globally distributed"
# Azure Cosmos DB SDK for Rust Client library for Azure Cosmos DB NoSQL API — globally distributed, multi-model database. ## Installation ```sh cargo add azure_data_cosmos azure_identity ``` ## Environment Variables ```bash COSMOS_ENDPOINT=https://<account>.documents.azure.com:443/ COSMOS_DATABASE=mydb COSMOS_CONTAINER=mycontainer ``` ## Authentication ```rust use azure_identity::DeveloperToolsCredential; use azure_data_cosmos::CosmosClient; let credential = DeveloperToolsCredential::new(None)?; let client = CosmosClient::new( "https://<account>.documents.azure.com:443/", credential.clone(), None, )?; ``` ## Client Hierarchy | Client | Purpose | Get From | |--------|---------|----------| | `CosmosClient` | Account-level operations | Direct instantiation | | `DatabaseClient` | Database operations | `client.database_client()` | | `ContainerClient` | Container/item operations | `database.container_client()` | ## Core Workflow ### Get Database and Container Clients ```rust let database = client.database_client("myDatabase"); let container = database.container_client("myContainer"); ``` ### Create Item ```rust use serde::{Serialize, Deserialize}; #[derive(Serialize, Deserialize)] struct Item { pub id: String, pub partition_key: String, pub value: String, } let item = Item { id: "1".into(), partition_key: "partition1".into(), value: "hello".into(), }; container.create_item("partition1", item, None).await?; ``` ### Read Item ```rust let response = container.read_item("partition1", "1", None).await?; let item: Item = response.into_model()?; ``` ### Replace Item ```rust let mut item: Item = container.read_item("partition1", "1", None).await?.into_model()?; item.value = "updated".into(); container.replace_item("partition1", "1", item, None).await?; ``` ### Patch Item ```rust use azure_data_cosmos::models::PatchDocument; let patch = PatchDocument::default() .with_add("/newField", "newValue")? .with_remove("/oldField")?; container.patch_item("partition1", "1", patch, None).await?; ``` ### Delete Item ```rust container.delete_item("partition1", "1", None).await?; ``` ## Key Auth (Optional) Enable key-based authentication with feature flag: ```sh cargo add azure_data_cosmos --features key_auth ``` ## Best Practices 1. **Always specify partition key** — required for point reads and writes 2. **Use `into_model()?`** — to deserialize responses into your types 3. **Derive `Serialize` and `Deserialize`** — for all document types 4. **Use Entra ID auth** — prefer `DeveloperToolsCredential` over key auth 5. **Reuse client instances** — clients are thread-safe and reusable ## Reference Links | Resource | Link | |----------|------| | API Reference | https://docs.rs/azure_data_cosmos | | Source Code | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/cosmos/azure_data_cosmos | | crates.io | https://crates.io/crates/azure_data_cosmos | ## When to Use This skill is applicable to execute the workflow or actions described in the overview. ## Diff History - **v00.33.0**: Ingested from antigravity-awesome-skills community repo --- ## Why This Skill Exists Implement — Azure Cosmos DB SDK for Rust (NoSQL API). Use for document CRUD, queries, containers, and globally distributed <!-- SR_40: auto-generated from frontmatter `purpose`/`description` (OPP-Phase3). Expand with domain-specific rationale. --> ## What If Fails - condition: Código não disponível para análise <!-- SR_40: auto-generated from frontmatter `what_if_fails` (OPP-Phase3). -->
عرض على GitHub