O que é validator?
validator é uma biblioteca popular para validação de dados na linguagem Rust. Ela fornece ferramentas flexíveis e expressivas para verificar a correção de dados de entrada: strings, números, endereços de email, URLs, endereços IP, UUIDs e muito mais. A biblioteca é baseada em macros e traits, o que permite combinar facilmente regras de validação e criar verificações personalizadas.
Para que serve a validação de dados?
Em qualquer aplicação que trabalhe com entrada do usuário, API ou arquivos de configuração, é criticamente importante verificar os dados antes de usá-los. Erros de validação podem levar à falha do programa, vulnerabilidades ou funcionamento incorreto. A biblioteca validator ajuda a:
- Garantir a integridade dos dados
- Reduzir a quantidade de código boilerplate
- Fornecer tratamento uniforme de erros
- Simplificar os testes
Instalação
Adicione validator ao arquivo Cargo.toml:
[dependencies]validator = "0.18"serde = { version = "1.0", features = ["derive"] }Também é comum usar serde para desserializar os dados antes da validação.
Funções principais
- Atributos de validação —
#[validate(...)]para campos de structs - Validadores embutidos:
length,range,email,url,ip,uuid,contains,regex,custom - Validação aninhada — verificação recursiva de structs aninhadas
- Validadores personalizados — através de funções ou closures
- Agrupamento de erros — coleta de todos os erros de validação em um único objeto
ValidationErrors
Exemplo de código em Rust
use validator::Validate;use serde::Deserialize;
#[derive(Debug, Deserialize, Validate)]struct User { #[validate(length(min = 2, max = 50))] name: String,
#[validate(email)] email: String,
#[validate(range(min = 13, max = 120))] age: u8,
#[validate(url)] website: Option<String>,}
fn main() { let user = User { name: "A".to_string(), email: "invalid-email".to_string(), age: 10, website: Some("not-a-url".to_string()), };
match user.validate() { Ok(_) => println!("Dados corretos"), Err(errors) => { for (field, errs) in errors.field_errors() { for err in errs { println!("Erro no campo {}: {}", field, err); } } } }}Quando usar validator?
A biblioteca é ideal para:
- Servidores web com Actix, Axum, Rocket
- Processamento de formulários e requisições JSON
- Análise de arquivos de configuração
- Aplicações CLI com entrada do usuário
- Validação de dados antes de gravar no banco de dados
Se você precisa verificar dados de forma rápida e confiável em Rust — validator será uma excelente escolha.
Também na biblioteca
Geração de PDF em Go: visão geral das bibliotecas e exemplos de código
Trabalhando com Excel em JavaScript (Node.js): bibliotecas e exemplos de código
ErrorOr para C# (.NET): guia completo com exemplos práticos
Parsing de HTML em PHP: DOMDocument, SimpleXML e cURL para Web Scraping