azure-cosmos-rust
Permite que seu agente gerencie dados NoSQL no Azure Cosmos DB com Rust. É útil para quem precisa de alta performance e segurança no acesso aos dados.
O que ela faz
Esta ferramenta permite que programas escritos em Rust interajam com o banco de dados NoSQL do Azure Cosmos DB. Você pode criar, ler, atualizar e apagar informações armazenadas nele.
Quando usar
- ✓Quando seu programa Rust precisa salvar ou buscar dados.
- ✓Ao gerenciar informações em um banco de dados distribuído.
- ✓Para realizar operações básicas (criar, ler, atualizar, apagar) em dados no Cosmos DB.
Exemplo do que pedir para a IA
“Como eu crio um novo item no meu container do Cosmos DB usando Rust?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O programa Rust usa uma biblioteca especial (SDK) para se conectar ao Azure Cosmos DB. Ele define como os dados devem ser estruturados e envia comandos para o banco de dados para realizar as operações desejadas.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-cosmos-rustOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-rust/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
SDK do Azure Cosmos DB para Rust
Biblioteca cliente para a API NoSQL do Azure Cosmos DB — banco de dados distribuído globalmente e multimodelo.
Os exemplos abaixo exigem um conjunto de crates compatíveis revisados e a substituição de cada espaço reservado de recurso. Não use dados de produção para gravações de demonstração.
Instalação
cargo add azure_data_cosmos@=0.37.1 azure_identity@=1.0.0 azure_core@=1.1.0
Variáveis de Ambiente
export COSMOS_ENDPOINT="https://<account>.documents.azure.com:443/"
export COSMOS_DATABASE="mydb"
export COSMOS_CONTAINER="mycontainer"
Autenticação
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?;
Hierarquia de Clientes
| Cliente | Propósito | Obter de |
|---|---|---|
CosmosClient |
Operações em nível de conta | Instanciação direta |
DatabaseClient |
Operações de banco de dados | client.database_client() |
ContainerClient |
Operações de contêiner/item | database.container_client() |
Fluxo de Trabalho Principal
Obter Clientes de Banco de Dados e Contêiner
let database = client.database_client("myDatabase");
let container = database.container_client("myContainer", None).await?;
Criar 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?;
Ler Item
let response = container.read_item("partition1", "1", None).await?;
let item: Item = response.into_model()?;
Substituir 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 de 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()?;
Excluir Item
container.delete_item("partition1", "1", None).await?;
A API atual revisada usa um inicializador/inicialização de contêiner assíncrono e um ID de item explícito separado. O PATCH de pré-visualização não é uma garantia pronta para produção; revise sua estratégia selecionada, comportamento de conflito/tentativa e custo de unidade de solicitação. Referência oficial da crate.
Autenticação por Chave (Opcional)
Habilite a autenticação baseada em chave com o sinalizador de recurso:
cargo add azure_data_cosmos@=0.37.1 --features key_auth
Melhores Práticas
- Sempre especifique a chave de partição — necessária para leituras e gravações pontuais
- Use
into_model()?— para desserializar respostas em seus tipos - Derive
SerializeeDeserialize— para todos os tipos de documento - Use autenticação do Entra ID — prefira
DeveloperToolsCredentialem vez de autenticação por chave - Reutilize instâncias de cliente — clientes são thread-safe e reutilizáveis
O conjunto de exemplos revisados usa azure_data_cosmos 0.37.1 e crates de credenciais/core do Azure compatíveis. Grave e confirme o Cargo.lock; a revisão de código-fonte/API não é um teste de compilador ou de serviço ativo.
Links de Referência
| Recurso | Link |
|---|---|
| Referência da API | https://docs.rs/azure_data_cosmos |
| Código-fonte | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/cosmos/azure_data_cosmos |
| crates.io | https://crates.io/crates/azure_data_cosmos |
Quando Usar
Use quando um aplicativo Rust precisar de CRUD de itens NoSQL do Cosmos DB, leituras pontuais por chave de partição, acesso a contêiner ou patching de pré-visualização explicitamente optado.
Limitações
…
Perguntas frequentes
O que é um 'container' no Cosmos DB?
Pense em um container como uma tabela em um banco de dados tradicional, onde você armazena itens (como linhas de dados).
O que é 'CRUD'?
CRUD é uma sigla para Criar (Create), Ler (Read), Atualizar (Update) e Apagar (Delete), que são as operações básicas de manipulação de dados.
Preciso saber muito sobre bancos de dados para usar isso?
É útil ter uma noção básica de como bancos de dados funcionam, mas a biblioteca simplifica muitas das interações complexas.
Detalhes
Descrição original do autor
Azure Cosmos DB SDK for Rust (NoSQL API). Use for document CRUD, queries, containers, and globally distributed data.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2305
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
clickhouse-io
Ajuda seu agente a otimizar consultas e esquemas no banco de dados ClickHouse. Ele aplica as melhores práticas para cargas de trabalho analíticas de alta performance. Use quando consultas analíticas demoram muito.
affaan-m/ECC
scientific-db-pubmed-database
Ajuda seu agente a buscar artigos científicos na área biomédica. É útil para pesquisas que precisam de informações médicas específicas.
affaan-m/ECC
scientific-db-uspto-database
Permite ao agente consultar dados oficiais de patentes e marcas registradas dos EUA. É útil para pesquisas de propriedade intelectual.
affaan-m/ECC