🔒 Rustls Nativo
TLS 1.2 e 1.3 em Rust puro, sem acoplamento a bibliotecas OpenSSL ou C externas.
⚡ Drop-in curl Subset
Aceita as flags fundamentais do curl (-s, -f, -o, -m, -w, -fsSL) diretamente.
📦 Estático & Ultraleve
Binário único e independente (< 4MB) pronto para BusyBox, Alpine Linux e containers.
📥 Instalação
Clone e compile diretamente usando o gerenciador de pacotes do Rust (Cargo):
# Instalação rápida via Cargo
git clone ssh://git@codeberg.org/lumenpink/svyaz.git
cd svyaz
cargo install --path .
# Os binários 'svyaz' e 'sv' ficarão disponíveis no seu PATH
🚀 Exemplos de Uso
O Svyaz pode ser executado tanto pelo nome completo quanto pelo atalho de duas letras sv:
# 1. Requisição GET simples
sv https://api.github.com/zen
# 2. Chamada silenciosa com timeout de 3 segundos
sv -s -m 3 https://codeberg.org/api/v1/version
# 3. Download de arquivo com redirecionamentos (idêntico a curl -fsSL)
sv -fsSL https://example.com/archive.tar.gz -o /tmp/archive.tar.gz
# 4. Requisição POST com JSON e Token
sv -X POST \
-H "Authorization: token $CODEBERG_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Nova issue"}' \
"https://codeberg.org/api/v1/repos/lumenpink/svyaz/issues"
# 5. Capturar apenas o status code HTTP (200, 404, etc.)
sv -s -o /dev/null -w "%{http_code}\n" https://codeberg.org/api/v1/version
⚙️ Tabela de Opções
| Opção | Compatibilidade curl | Descrição |
|---|---|---|
-X, --request |
Sim | Especifica o método HTTP (GET, POST, PUT, PATCH, HEAD) |
-H, --header |
Sim | Passa cabeçalho HTTP customizado (ex: -H "Authorization: token xxx") |
-d, --data |
Sim | Corpo da requisição POST/PUT/PATCH (string, @arquivo ou -) |
-s, --silent |
Sim | Modo silencioso (sem saída de progresso na stderr) |
-f, --fail |
Sim | Retorna exit code 22 em erros HTTP 4xx ou 5xx |
-o, --output |
Sim | Grava corpo da resposta em arquivo em vez do stdout |
-m, --max-time |
Sim | Tempo limite máximo da requisição em segundos |
-w, --write-out |
Sim | Formata saída final (suporta %{http_code}, \n, \t) |
-I, --head |
Sim | Executa requisição HEAD |
-L, --location |
Sim | Segue redirecionamentos HTTP 3xx automaticamente |
-fsSL |
Sim | Combinação de flags padrão para downloads silenciosos e resilientes |
🛠️ Integração com o Ecossistema CCCP
O Svyaz substitui o curl em ambientes sem binários externos nos seguintes módulos:
cccp diva: Triagem de tickets via Gemini e publicação nas forjas.cccp tickets sync: Sincronização e listagem de issues.cccp check-update: Verificação de versões remotas e download de patches.cccp catalog: Atualização de tópicos e descrição nas forjas remotas.