Biblioteca Padrão do Rust
Referência completa da standard library com explicações em português e exemplos práticos.
A biblioteca padrão do Rust (std) fornece tipos, traits e funções essenciais para todo programa Rust. Esta referência explica cada módulo com exemplos práticos e dicas de uso idiomático.
Categorias
Tipos Fundamentais
String, Vec, HashMap, Option, Result, Box, Rc, Arc — os tipos que você usa em todo projeto.
Coleções
BTreeMap, HashSet, VecDeque, BinaryHeap, arrays, tuplas — estruturas de dados para cada necessidade.
Traits Essenciais
Display, Debug, From, Into, Clone, Copy, Default, Ord, Hash — os contratos que conectam o ecossistema.
I/O e Sistema de Arquivos
Read, Write, File, Path, stdin/stdout, TCP/UDP, processos e variáveis de ambiente.
Concorrência e Sincronização
Thread, Mutex, RwLock, channels, atomics, Cell, RefCell, Send, Sync — programação concorrente segura.
Utilitários e Avançado
time, fmt, mem, ptr, any, marker, convert, Pin — ferramentas avançadas para código de produção.
Todos os Módulos
String e &str em Rust
O que são String e &str
Em Rust, existem dois tipos principais para representar texto: String e &str. A String é um tipo owned (proprietário) — ela é …
Vec<T>: Vetor Dinâmico em Rust
O que é Vec<T>
Vec<T>, ou simplesmente “vetor”, é a coleção dinâmica mais usada em Rust. Ele armazena elementos do tipo T de forma …
HashMap<K,V> em Rust
O que é HashMap<K,V>
O HashMap<K,V> é uma coleção de pares chave-valor onde cada chave é única. Internamente, ele usa uma tabela hash para oferecer …
Option<T> em Rust: Some e None
O que é Option<T>
Option<T> é o tipo que Rust usa para representar valores que podem ou não existir. Ele tem exatamente duas variantes: Some(T) …
Result<T,E> em Rust: Ok e Err
O que é Result<T,E>
Result<T, E> é o tipo que Rust usa para representar operações que podem falhar de forma recuperável. Ele tem duas variantes: …
Iterator Trait em Rust
O que é o Trait Iterator
O trait Iterator é a base da programação funcional e do processamento de coleções em Rust. Qualquer tipo que implemente Iterator …
Box<T>: Alocação no Heap em Rust
O que é Box<T>
Box<T> é o smart pointer mais simples de Rust: ele aloca um valor do tipo T no heap e armazena um ponteiro para ele na stack. Quando …
Rc<T> e Arc<T>: Contagem de Referências
O que são Rc<T> e Arc<T>
Rc<T> (Reference Counted) e Arc<T> (Atomically Reference Counted) são smart pointers que permitem múltiplos …
Cow<T>: Clone on Write em Rust
O que é Cow<T>
Cow<'a, T> (Clone on Write) é um smart pointer que pode conter um dado emprestado (Borrowed) ou possuído (Owned). A ideia central é: …
Slices (&[T]) em Rust
O que são Slices
Um slice (&[T]) é uma referência a uma sequência contígua de elementos do tipo T. Ele não possui os dados — apenas aponta para eles. …
BTreeMap<K,V>: Mapa Ordenado em Rust
O BTreeMap<K, V> é um mapa associativo da biblioteca padrão do Rust que mantém suas chaves sempre ordenadas. Internamente, ele utiliza uma árvore B …
HashSet<T>: Conjunto em Rust
O HashSet<T> é a implementação de conjunto (set) da biblioteca padrão do Rust. Ele armazena elementos únicos sem repetição e oferece busca, inserção e …
BTreeSet em Rust: Guia da Stdlib | Rust Brasil
O BTreeSet<T> é a implementação de conjunto ordenado da biblioteca padrão do Rust. Ele armazena elementos únicos e os mantém sempre em ordem crescente. …
VecDeque<T>: Fila de Duas Pontas em Rust
O VecDeque<T> é uma fila de duas pontas (double-ended queue) da biblioteca padrão do Rust. Ele permite inserção e remoção eficiente em ambas as …
LinkedList<T> em Rust
O LinkedList<T> é a implementação de lista duplamente encadeada da biblioteca padrão do Rust. Cada elemento é armazenado em um nó separado no heap, com …
BinaryHeap<T>: Fila de Prioridade em Rust
O BinaryHeap<T> é a implementação de fila de prioridade (priority queue) da biblioteca padrão do Rust. Ele é um max-heap por padrão, ou seja, o maior …
Arrays e [T; N] em Rust
Um array em Rust, escrito como [T; N], é uma coleção de tamanho fixo com N elementos do tipo T. Diferente do Vec, o tamanho do array é conhecido em tempo de …
Tuplas em Rust: (T1, T2, ...)
Uma tupla em Rust é um tipo composto de tamanho fixo que pode conter valores de tipos diferentes. Tuplas são escritas como (T1, T2, T3, ...) e são extremamente …
Ranges em Rust: .., ..=, e RangeFull
Os ranges (faixas) em Rust são tipos que representam intervalos de valores. Eles são usados extensivamente em for loops, fatiamento de slices, verificação de …
Leia maisTipos Numéricos em Rust: i32, u64, f64 e Mais
Os tipos numéricos são os tipos mais fundamentais em Rust. A linguagem oferece inteiros com e sem sinal em tamanhos de 8 a 128 bits, dois tipos de ponto …
Leia maisDisplay e Debug Traits em Rust
O que são Display e Debug?
Em Rust, os traits fmt::Display e fmt::Debug controlam como um tipo é convertido em texto. Eles são fundamentais para qualquer …
From e Into Traits em Rust
O que são From e Into?
Os traits From e Into formam o sistema de conversão de tipos do Rust. Eles permitem transformar um valor de um tipo em outro de forma …
Clone e Copy Traits em Rust
O que são Clone e Copy?
Em Rust, o sistema de ownership determina que cada valor tem um único dono. Quando você atribui um valor a outra variável ou passa como …
Leia maisDefault Trait em Rust
O que é o Default Trait?
O trait Default fornece uma maneira padronizada de criar um valor padrão para um tipo. Ele responde à pergunta: “Qual é o valor …
Eq, PartialEq, Ord e PartialOrd em Rust
O que são os Traits de Igualdade e Ordenação?
Rust define quatro traits para comparação de valores, organizados em uma hierarquia:
PartialEq: igualdade parcial …
Operator Overloading em Rust: std::ops
O que são os Traits de Operadores?
Em Rust, operadores como +, -, *, /, [] e - (negação) não são mágicos — eles são chamadas a métodos definidos por traits no …
Deref e DerefMut Traits em Rust
O que são Deref e DerefMut?
Os traits Deref e DerefMut controlam o comportamento do operador de dereferência (*). Eles são a base do sistema de smart pointers …
AsRef, AsMut e Borrow Traits em Rust
O que são AsRef, AsMut e Borrow?
Esses três traits lidam com conversão de referências — transformar uma referência de um tipo em uma referência de outro tipo, …
Leia maisstd::error::Error Trait em Rust
O que é o Trait Error?
O trait std::error::Error é a base do sistema de tratamento de erros em Rust. Ele define a interface que todo tipo de erro deve seguir, …
Hash Trait em Rust
O que é o Trait Hash?
O trait Hash permite que um valor seja transformado em um número inteiro (hash) que o identifica de forma eficiente. Esse hash é usado por …
Módulo std::io em Rust
Módulo std::io em Rust
O módulo std::io é o coração do sistema de entrada e saída do Rust. Ele define as traits fundamentais Read, Write e BufRead, o tipo de …
Read e Write Traits em Rust
Read e Write Traits em Rust
As traits std::io::Read e std::io::Write são as abstrações centrais para I/O no Rust. Qualquer fonte de dados implementa Read …
BufReader e BufWriter em Rust
BufReader e BufWriter em Rust
BufReader e BufWriter são wrappers que adicionam buffering a qualquer tipo que implemente Read ou Write, respectivamente. Sem …
File e OpenOptions em Rust
File e OpenOptions em Rust
O tipo std::fs::File representa um arquivo aberto no sistema operacional. Ele implementa as traits Read, Write e Seek, permitindo …
Módulo std::fs em Rust
Módulo std::fs em Rust
O módulo std::fs fornece funções de alto nível para operações no sistema de arquivos: ler, escrever, copiar, renomear, remover arquivos e …
Path e PathBuf em Rust
Path e PathBuf em Rust
Path e PathBuf são os tipos do Rust para representar caminhos no sistema de arquivos de forma segura e portável. Path é uma referência …
stdin, stdout e stderr em Rust
stdin, stdout e stderr em Rust
Todo processo possui três fluxos de I/O padrão: stdin (entrada padrão), stdout (saída padrão) e stderr (saída de erro). No Rust, …
Leia maisMódulo std::net em Rust
Módulo std::net em Rust
O módulo std::net fornece os tipos fundamentais para programação de rede em Rust: TcpListener e TcpStream para conexões TCP, UdpSocket …
Módulo std::process em Rust
Módulo std::process em Rust
O módulo std::process permite executar programas externos, capturar sua saída, enviar dados via stdin, verificar o código de saída e …
Módulo std::env em Rust
Módulo std::env em Rust
O módulo std::env fornece funções para interagir com o ambiente de execução do processo: variáveis de ambiente, argumentos da linha de …
std::thread em Rust: Criando Threads
O que faz e quando usar
O módulo std::thread fornece a API para criar e gerenciar threads nativas do sistema operacional em Rust. Cada thread criada com …
Mutex<T> e RwLock<T> em Rust
O que faz e quando usar
Mutex<T> (mutual exclusion) e RwLock<T> (read-write lock) são primitivas de sincronização que protegem dados compartilhados …
Channels em Rust: mpsc e Comunicação
O que faz e quando usar
O módulo std::sync::mpsc implementa canais de comunicação entre threads baseados no modelo de passagem de mensagens. “mpsc” …
Tipos Atômicos em Rust: std::sync::atomic
O que faz e quando usar
O módulo std::sync::atomic fornece tipos que permitem operações atômicas — leituras e escritas que são indivisíveis do ponto de vista de …
Once, OnceLock e LazyLock em Rust
O que faz e quando usar
Rust oferece três primitivas na biblioteca padrão para inicialização única e thread-safe: Once, OnceLock<T> e LazyLock<T>. …
Barrier e Condvar em Rust
O que faz e quando usar
Barrier e Condvar (condition variable) são primitivas de sincronização avançadas que permitem coordenar a execução de múltiplas threads. …
Scoped Threads em Rust: thread::scope
O que faz e quando usar
thread::scope (estável desde Rust 1.63) permite criar threads que podem referenciar dados da stack da thread que as criou — sem precisar …
Cell<T> e RefCell<T>: Mutabilidade Interior
O que faz e quando usar
Cell<T> e RefCell<T> implementam o padrão de mutabilidade interior (interior mutability) em Rust. Normalmente, o sistema de …
Send e Sync: Segurança entre Threads
O que faz e quando usar
Send e Sync são marker traits (traits marcadoras) que o compilador usa para garantir segurança de memória entre threads em tempo de …
Padrões de Thread Safety em Rust
O que faz e quando usar
Este guia reune os padrões de projeto mais importantes para concorrência segura em Rust. Em vez de abordar uma única primitiva, aqui …
Leia maisstd::time em Rust: Duration, Instant e SystemTime
Visao Geral do Modulo std::time
O modulo std::time fornece os tipos fundamentais para trabalhar com tempo em Rust. Diferente de muitas linguagens que misturam …
Modulo std::fmt em Rust: Formatacao Completa
Visao Geral do Modulo std::fmt
O modulo std::fmt e o coracao do sistema de formatacao do Rust. Ele define as traits e tipos que tornam possivel transformar …
Modulo std::mem em Rust: Manipulacao de Memoria
Visao Geral do Modulo std::mem
O modulo std::mem fornece funcoes para inspecionar e manipular memoria em Rust. Ele permite consultar o tamanho e alinhamento de …
Ponteiros em Rust: Módulo std::ptr Guia | Rust Brasil
Visao Geral do Modulo std::ptr
O modulo std::ptr fornece funcoes e tipos para trabalhar com ponteiros raw (*const T e *mut T) em Rust. Ponteiros raw sao o nivel …
Modulo std::any em Rust: Any e TypeId
Visao Geral do Modulo std::any
O modulo std::any fornece mecanismos para verificacao de tipos em tempo de execucao (runtime). Em um sistema de tipos estatico …
Modulo std::marker em Rust: Traits de Marcacao
Visao Geral do Modulo std::marker
O modulo std::marker contem traits de marcacao (marker traits) — traits que nao possuem metodos, mas comunicam propriedades de …
Modulo std::convert em Rust: From, Into e TryFrom
Visao Geral do Modulo std::convert
O modulo std::convert define as traits padrao de conversao do Rust. Essas traits formam o contrato universal para transformar …
Pin<P> em Rust: Fixando Valores na Memoria
Visao Geral de Pin
Pin<P> e um wrapper que impede que um valor seja movido na memoria. Em Rust, valores podem ser movidos livremente — quando voce faz let …
Visao Geral de std::collections em Rust
Visao Geral do Modulo std::collections
O modulo std::collections fornece as estruturas de dados da biblioteca padrao do Rust. Cada colecao e otimizada para um …
O Prelude do Rust: O Que e Importado Automaticamente
Visao Geral do Prelude
Quando voce escreve um programa Rust, existem dezenas de tipos e traits que estao sempre disponiveis sem nenhum use explicito. Isso …