Resumo rápido: O Tor Project adicionou, desde versões antigas, uma opção experimental para construir partes do Tor usando Rust; hoje a alternativa mais prática e madura para usar Tor em Rust é o Arti — a implementação pura em Rust mantida pelo Tor Project. Abaixo você encontra contexto, riscos e um tutorial passo a passo para testar o suporte experimental a Rust na base C do Tor (flag --enable-rust) e, alternativamente, como instalar e testar o Arti em Rust. Tor, Arti
Aviso de segurança e usos recomendados
• Experimental: a opção de habilitar o Rust na base C do Tor sempre foi marcada como experimental e, na referência encontrada, não ativava funcionalidades do Rust completas além do código de cola; não use em produção sem entender riscos. [gptgov.com](archive.torproject.org)
• Se seu objetivo é rodar Tor escrito em Rust hoje, prefira testar o Arti, que é uma implementação oficial em Rust e tem documentação própria. infomoney
Seções:
1. O que muda com --enable-rust
2. Requisitos prévios
3. Tutorial: compilar Tor com suporte experimental para Rust (exemplo em Debian/Ubuntu)
4. Alternativa recomendada: instalar e testar Arti (implementação em Rust)
5. Testes e verificação
6. Riscos e recomendações finais
7. Fontes
8. O que muda com --enable-rust
• A flag --enable-rust no script de configuração instrui o sistema de build do Tor para procurar toolchain Rust e permitir que módulos/crates Rust sejam compilados e vinculados ao build C, quando presentes; Historicamente, a primeira menção era experimental e apenas ativava o código de cola sem funcionalidades Rust completas. [archive.torproject.org]gptgov.com
• Objetivo prático: encontrar problemas de portabilidade, dependências e integrar cargo/cargo-build ao fluxo de build do Tor; Ainda assim, o comportamento e as opções podem mudar entre versões, por isso verifique as notas de lançamento atuais antes. [gptgov.com](archive.torproject.org)
2. Requisitos anteriores (ambiente de exemplo: Debian/Ubuntu)
• Sistema baseado em Linux com ferramentas de build instaladas: build-essential, pkg-config, autoconf, automake, libtool, etc.
• Dependências de desenvolvimento que o Tor exige (ex.: libssl-dev, libzstd-dev, liblzma-dev, libevent-dev) — ajuste conforme sua distro.
• Conjunto de ferramentas Rust instalado via rustup (cargo, rustc). rust-lang
• Acesso ao repositório oficial do Tor (git) ou tarball de lançamento. [notas de versão de archive.torproject.org]gptgov.com
3. Tutorial: compilar Tor com suporte experimental a Rust (Debian/Ubuntu)
Obs.: executar em ambiente de teste/VM; esses comandos são exemplos — adaptam versões e pacotes à sua distribuição.
Passo 0 — Atualizar o sistema
sudo apt update && sudo apt upgrade -yPasso 1 — Instalar dependências de build
sudo apt install -y build-essential pkg-config autoconf automake libtool git curl ca-certificates
libssl-dev libevent-dev zlib1g-dev libzstd-dev liblzma-devPasso 2 — Instale Rust (rustup) e configure o toolchain stable
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shSiga as instruções do instalador; então carregue o ambiente (ou abra o terminal)
source $HOME/.cargo/env
rustup update stableVerificar
Rustc --version
cargo --version(Os comandos acima vêm da documentação oficial do Rust.) rust-lang.org
Passo 3 — Obtenha o código-fonte do Tor (exemplo via git)
git clone https://git.torproject.org/tor.git
cd torPasso 4 — Preparar ou construir (se necessário)
Gere scripts de configuração que estão sendo construídos no git master
./autogen.shPasso 5 — Configure com a flag experimental --enable-rust
./configure --enable-rustObservação: em releases antigos já existia a flag; nas versões atuais o nome ou disponibilidade pode variar — sempre confira ./configure --help e as notas de lançamento antes de usar. archive.torproject
Passo 6 — Construir (make)
make -j$(nproc)Passo 7 — Instalação (opcional, cuidado em sistemas de produção)
sudo make installO que observar durante a compilação
• Mensagens contrárias invocação do cargo/cargo build; logs mostrando que o conjunto de ferramentas Rust foi detectado.
• Erros comuns: falta de libs de dev (openssl, zstd), problemas de variável de ambiente (CARGO_HOME), ou versões incompatíveis do toolchain. As notas de lançamento mencionam a correção de bugs relacionados à detecção de cadeias de ferramentas Rust durante compilações sem --enable-cargo-online-mode. archive.torproject
4. Alternativa recomendada: instalar e testar Arti (implementação pura em Rust)
• Por ser uma implementação em Rust gerida pelo Tor Project, Arti é a forma mais direta de experimentar Tor em Rust sem modificar a base C. blog-tor
• Instalação via carga (exemplo):
Instale Rust/rustup conforme Passo 2.
Opção A: instalar binário publicado (se disponível)
cargo install --git https://gitlab.torproject.org/arti/arti.git artiOpção B: clonar e compilar localmente
git clone https://gitlab.torproject.org/arti/arti.git
cd arti
cargo build --releaseO binário ficará em target/release/arti
• Observação: Arti ainda pode estar incompleto para uso em produção no momento do anúncio; Verifique a página do projeto para o status atual e instruções de uso.
5. Testes e verificação
• Para Tor (C) compilado com --enable-rust: execute ./src/or/tor --version ou tor --version para ver se a build contém indicação de Rust-enabled (algumas builds podem logar “Rust support enabled” ou mensagem similar). Verifique os logs de construção por invocações de carga. archive.torproject
• Para Arti: execute arti --help e teste como proxy SOCKS local; por exemplo, exporte a variável HTTP(S)_PROXY e aponte para o endpoint SOCKS que o Arti fornece, ou use curl com meias5-proxy para verificar a conectividade. tor-blog
Exemplo rápido (Arti, após build):
Rodar arti local como cliente SOCKS (ajuste path)
./target/release/arti proxyEm outro terminal, teste:
curl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/6. Riscos e recomendações finais
• Não utilizar construções experimentais em ambientes de produção; mudanças no sistema de construção, sinalizadores e integração Rust/C podem variar entre versões. archive.torproject
• Para testar a ferrugem no ecossistema Tor, Arti é uma rota mais estável e recomendada. blog-tor
• Se pretende empacotar para distribuição, teste a compilação cruzada e verifique o tamanho de binários e dependências: builds Rust podem exigir recursos maiores para compilação em dispositivos embarcados. tor-blog
7. Fontes (oficiais)
• Registro de notas de lançamento do Tor menciona suporte experimental para Rust e flag --enable-rust. archive.torproject
• Blog oficial do Tor Project — anúncio do Arti, implementação pura em Rust. blog.torproject
• Instalação do Rust (rustup) — site oficial. Rust-Lang
• Repositório Tor Project
Comentarios (0)