Skip to content
Skillpedia
Databases48k · #2305

azure-cosmos-rust

Lets your agent manage NoSQL data in Azure Cosmos DB with Rust. It's useful for those who need high performance and security when accessing data.

What it does

This tool allows programs written in Rust to interact with the Azure Cosmos DB NoSQL database. You can create, read, update, and delete information stored within it.

When to use it

  • ✓When your Rust program needs to save or retrieve data.
  • ✓When managing information in a distributed database.
  • ✓To perform basic operations (create, read, update, delete) on data in Cosmos DB.

Example of what to ask your AI

“How do I create a new item in my Cosmos DB container using Rust?”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-rust/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-rust/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The Rust program uses a special library (SDK) to connect to Azure Cosmos DB. It defines how data should be structured and sends commands to the database to perform the desired operations.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill azure-cosmos-rust

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-rust/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Azure Cosmos DB SDK for Rust

Client library for Azure Cosmos DB NoSQL API — globally distributed, multi-model database.

The examples below require a reviewed compatible crate set and replacement of every resource placeholder. Do not use production data for demonstration writes.

Installation

cargo add azure_data_cosmos@=0.37.1 azure_identity@=1.0.0 azure_core@=1.1.0

Environment Variables

export COSMOS_ENDPOINT="https://<account>.documents.azure.com:443/"
export COSMOS_DATABASE="mydb"
export COSMOS_CONTAINER="mycontainer"

Authentication

use azure_identity::DeveloperToolsCredential;
use azure_data_cosmos::{AccountEndpoint, AccountReference, CosmosClient, RoutingStrategy};

let credential = DeveloperToolsCredential::new(None)?;
let endpoint: AccountEndpoint = "https://<account>.documents.azure.com/".parse()?;
let account = AccountReference::with_credential(endpoint, credential.clone());
let client = CosmosClient::builder()
    .build(account, RoutingStrategy::ProximityTo("East US".into()))
    .await?;

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

let database = client.database_client("myDatabase");
let container = database.container_client("myContainer", None).await?;

Create Item

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", "1", item, None).await?;

Read Item

let response = container.read_item("partition1", "1", None).await?;
let item: Item = response.into_model()?;

Replace Item

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

// Explicit preview opt-in: cargo add azure_data_cosmos@=0.37.1 --features preview_patch
use azure_data_cosmos::models::{PatchInstructions, PatchOperation};

let patch = PatchInstructions::from(vec![
    PatchOperation::set("/value", serde_json::json!("newValue")),
]);
let patched: Item = container.patch_item("partition1", "1", patch, None)
    .await?.into_model()?;

Delete Item

container.delete_item("partition1", "1", None).await?;

The reviewed current API uses an async builder/container initialization and a separate explicit item ID. Preview PATCH is not a production-ready guarantee; review its selected strategy, conflict/retry behavior and request-unit cost. Official crate reference.

Key Auth (Optional)

Enable key-based authentication with feature flag:

cargo add azure_data_cosmos@=0.37.1 --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

The reviewed example set uses azure_data_cosmos 0.37.1 and compatible Azure core/credential crates. Record and commit Cargo.lock; source/API review is not a compiler or live-service test.

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

Use when a Rust application needs Cosmos DB NoSQL item CRUD, partition-key point reads, container access or explicitly opted-in preview patching.

Limitations

…

FAQ

What is a 'container' in Cosmos DB?

Think of a container like a table in a traditional database, where you store items (like data rows).

What does 'CRUD' mean?

CRUD is an acronym for Create, Read, Update, and Delete, which are the basic data manipulation operations.

Do I need to know a lot about databases to use this?

It's helpful to have a basic understanding of how databases work, but the library simplifies many of the complex interactions.

Details

Original description by the author

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

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#2305
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills