Rustonomicon
Rustonomicon
Resumo:
Introdução
The Rustonomicon (em tradução livre — "Rustonomicon") não é apenas um livro, mas sim um grimório, uma coleção de conhecimentos sombrios sobre a linguagem de programação Rust. Se você já domina os fundamentos do Rust e sente forças para olhar nos bastidores das rígidas garantias de segurança, este livro será seu guia para o mundo do código unsafe, ponteiros brutos, FFI (Foreign Function Interface) e outras ferramentas perigosas, porém necessárias. Escrito por um conjunto de autores (Various Authors) e mantido pela comunidade, ele representa o guia oficial sobre Rust inseguro, disponível gratuitamente na versão online. A edição impressa de 2022, com 180 páginas, é um guia compacto, mas denso, para quem deseja entender como o Rust funciona "por baixo dos panos" e como contornar seus mecanismos de proteção quando realmente necessário.
Sobre o que é o livro
O livro é dedicado exclusivamente ao subconjunto unsafe do Rust. Ele não ensina os fundamentos da sintaxe ou código idiomático — pressupõe-se que o leitor já escreva com confiança em Rust seguro. Os principais tópicos são:
- Ponteiros brutos (
*const Te*mut T): criação, desreferenciação, aritmética de ponteiros. - Funções e traits inseguros: declaração e chamada de
unsafe fn, implementação deunsafe trait. - FFI (Foreign Function Interface): chamada de funções C a partir do Rust, exportação de funções Rust para C, trabalho com blocos
extern. - Gerenciamento de memória: gerenciamento manual de memória, alocadores, criação de smart pointers próprios.
- Representação de dados: alinhamento, tamanhos de tipos, layouts de structs e enums, atributos
#[repr(...)]. - Comportamento indefinido (UB): o que pode e não pode ser feito em código unsafe, como evitar UB.
- Operações atômicas e barreiras de memória: sincronização de baixo nível.
- Inserção de assembly: macro
asm!para código dependente de plataforma.
Para quem é este livro
The Rustonomicon é destinado a desenvolvedores experientes em Rust que já têm experiência em escrever código seguro e desejam se aprofundar em programação de sistemas. Será útil para:
- Desenvolvedores que criam bibliotecas com FFI (por exemplo, wrappers para bibliotecas C/C++).
- Engenheiros que trabalham com sistemas operacionais, drivers ou sistemas embarcados.
- Aqueles que desejam implementar suas próprias estruturas de dados com gerenciamento manual de memória (por exemplo, um
VecouHashMappróprio). - Desenvolvedores de motores de jogos e aplicações de alto desempenho, onde cada microssegundo é crítico.
- Todos que desejam realmente entender como o Rust funciona no nível do código de máquina.
O que o leitor aprenderá
Ao ler o livro, você será capaz de:
- Usar com confiança ponteiros brutos e entender a diferença entre referências e ponteiros.
- Escrever wrappers seguros sobre código inseguro, sem vazamentos de memória ou UB.
- Interagir com bibliotecas C via FFI, transmitindo estruturas de dados complexas.
- Criar alocadores próprios e gerenciar memória manualmente.
- Entender layouts de dados na memória, alinhamento e tamanhos de tipos.
- Usar operações atômicas para programação lock-free.
- Evitar comportamento indefinido e escrever código unsafe correto.
- Inserir código assembly para otimizações dependentes de plataforma.
Pontos fortes
O livro possui várias vantagens inegáveis:
- Autoridade: é o guia oficial da equipe Rust, mantido pela comunidade. A informação é atual e precisa.
Recommendations