azure-eventhub-rust
Faz seu agente enviar e receber eventos usando o Azure Event Hubs em Rust. Ajuda a lidar com fluxos de dados em tempo real e a coletar eventos de forma eficiente.
O que ela faz
Este código permite que programas em Rust enviem e recebam dados (eventos) de um serviço chamado Azure Event Hubs. É útil para coletar grandes volumes de dados em tempo real.
Quando usar
- ✓Enviar muitos dados de sensores para análise.
- ✓Receber mensagens de outros sistemas para processamento.
- ✓Construir um sistema que registra atividades em tempo real.
Exemplo do que pedir para a IA
“Como faço para enviar uma mensagem simples para o Azure Event Hubs 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
Você cria um 'produtor' para enviar eventos ou um 'consumidor' para recebê-los. O código se conecta ao serviço Azure e gerencia o envio ou recebimento dos dados.
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-eventhub-rustOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-eventhub-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 Event Hubs para Rust
Biblioteca cliente para o Azure Event Hubs — plataforma de streaming de big data e serviço de ingestão de eventos.
Os exemplos abaixo exigem um conjunto de crates compatíveis revisados e a substituição de cada placeholder de recurso. Não use dados de produção para demonstração de escrita.
Instalação
cargo add azure_messaging_eventhubs@=0.16.0 azure_identity@=1.1.0-beta.1 azure_core@=1.2.0-beta.1
Variáveis de Ambiente
export EVENTHUBS_HOST="<namespace>.servicebus.windows.net"
export EVENTHUB_NAME="<eventhub-name>"
Conceitos Chave
- Namespace — contêiner para Event Hubs
- Event Hub — fluxo de eventos particionado para processamento paralelo
- Partição — sequência ordenada de eventos
- Produtor — envia eventos para o Event Hub
- Consumidor — recebe eventos de partições
Cliente Produtor
Criar Produtor
use azure_identity::DeveloperToolsCredential;
use azure_messaging_eventhubs::ProducerClient;
let credential = DeveloperToolsCredential::new(None)?;
let producer = ProducerClient::builder()
.open("<namespace>.servicebus.windows.net", "eventhub-name", credential.clone())
.await?;
Enviar Evento Único
producer.send_event(vec![1, 2, 3, 4], None).await?;
Enviar Lote
let batch = producer.create_batch(None).await?;
if !batch.try_add_event_data(b"event 1".to_vec(), None)? {
return Err("Event does not fit in the batch".into());
}
if !batch.try_add_event_data(b"event 2".to_vec(), None)? {
return Err("Send the existing batch and retry the remaining event in a new batch".into());
}
producer.send_batch(batch, None).await?;
Cliente Consumidor
Criar Consumidor
use azure_messaging_eventhubs::ConsumerClient;
let credential = DeveloperToolsCredential::new(None)?;
let consumer = ConsumerClient::builder()
.open("<namespace>.servicebus.windows.net", "eventhub-name", credential.clone())
.await?;
Receber Eventos
// Open receiver for specific partition
use futures::StreamExt;
let receiver = consumer.open_receiver_on_partition("0".to_string(), None).await?;
let mut events = receiver.stream_events();
// Bound the receive loop and handle the no-event timeout without logging payloads.
for _ in 0..100 {
match tokio::time::timeout(std::time::Duration::from_secs(10), events.next()).await {
Ok(Some(Ok(event))) => { /* process the authorized event and checkpoint safely */ }
Ok(Some(Err(error))) => return Err(error.into()),
Ok(None) | Err(_) => break,
}
}
Obter Propriedades do Event Hub
let properties = consumer.get_eventhub_properties(None).await?;
println!("Partitions: {:?}", properties.partition_ids);
Obter Propriedades da Partição
let partition_props = consumer.get_partition_properties("0", None).await?;
println!("Last sequence number: {}", partition_props.last_enqueued_sequence_number);
Melhores Práticas
- Reutilize clientes — crie uma vez, envie muitos eventos
- Use lotes — mais eficiente do que envios individuais
- Verifique a capacidade do lote —
try_add_event_dataretornafalsequando cheio - Processe partições em paralelo — cada partição pode ser consumida independentemente
- Use grupos de consumidores — isole diferentes aplicações consumidoras
- Gerencie checkpointing — use
azure_messaging_eventhubs_checkpointstore_blobpara consumidores distribuídos
Armazenamento de Checkpoint (Opcional)
Para consumidores distribuídos com checkpointing:
cargo add azure_messaging_eventhubs_checkpointstore_blob
O Event Hubs 0.16 usa a linha beta do Azure core, portanto, combine-o com a identidade beta publicada correspondente; não misture traits de credenciais da linha core estável.
O conjunto de exemplos revisados usa azure_messaging_eventhubs 0.16.0 e crates compatíveis do Azure core/credential. Registre 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_messaging_eventhubs |
| Código-fonte | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/eventhubs/azure_messaging_eventhubs |
| crates.io | https://crates.io/crates/azure_messaging_eventhubs |
Quando Usar
Use quando uma aplicação Rust publica eventos individuais/em lote ou consome uma partição específica do Event Hubs com um grupo de consumidores explícito e política de checkpoint.
Limitações
…
Perguntas frequentes
O que é um 'Namespace' ou 'Event Hub'?
Um Namespace é como uma caixa para seus Event Hubs. Um Event Hub é um fluxo de dados onde os eventos são organizados em partições.
O que são 'Produtor' e 'Consumidor'?
Um Produtor é quem envia eventos para o Event Hub. Um Consumidor é quem lê os eventos de uma partição específica.
Posso enviar vários eventos de uma vez?
Sim, você pode agrupar vários eventos em um 'batch' para enviar de forma mais eficiente.
Detalhes
Descrição original do autor
Azure Event Hubs SDK for Rust. Use for sending and receiving events, streaming data ingestion.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2316
- 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
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC