BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
Sem nuvem, sem cadastro, com criptografia de ponta a ponta. Se a conexão cair, continua de onde parou.
Translation pending
SecurityGitHub @igoreusttaquioOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Website
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Aplicativo desktop multiplataforma (Windows, Linux, macOS) para compactar e transferir arquivos e pastas direto entre dois computadores (P2P), sem armazenar nada em nuvem e com criptografia ponta a ponta (E2EE).
Downloads); nunca sobrescreve — usa nome (1), nome (2)....zpp2 localmente, sem rede.[App Origem] ──DataChannel P2P (libdatachannel)── [App Destino]
│ │
└────── SignalR (sinalização) ────────────────┘
│
[Servidor de sinalização]
+ coturn (TURN/STUN, fallback)
O servidor só pareia os dois lados (troca de SDP/candidatos ICE; no máximo 2 dispositivos por código). O arquivo vai direto entre as máquinas (ou via relay TURN quando o P2P direto é bloqueado), sempre cifrado com AES-256-GCM.
Cada pacote .zpp2 (zstd em chunks com SHA-256) é enviado em mensagens de até 60 KiB:
Ack) o que gravou em disco e, ao final, envia Done.O estado das transferências em andamento fica em %LOCALAPPDATA%/ZipStream/transfers (Linux: ~/.local/share/ZipStream/transfers; macOS: ~/Library/Application Support/ZipStream/transfers).
| Projeto | Papel |
|---|---|
src/ZipP2P.Core | Motor de compressão (zstd streaming, formato .zpp2) + criptografia (ECDH/AES-GCM/SAS) |
src/ZipP2P.P2P | Transporte (libdatachannel), sinalização, protocolo de transferência, reconexão e estado persistido |
src/ZipP2P.Contracts | DTOs compartilhados (cliente/servidor) |
src/ZipP2P.Server | Servidor de sinalização (ASP.NET Core + SignalR) |
src/ZipP2P.App | Aplicativo desktop (Avalonia) |
tests/ZipP2P.Core.Tests | Testes do motor e da criptografia |
tests/ZipP2P.P2P.Tests | Protocolo, retomada, reconexão e integração ponta a ponta via WebRTC |
tests/ZipP2P.App.Tests | Log, linha de comando e integração com o menu de contexto |
dotnet run --project src/ZipP2P.Server
Escuta em http://0.0.0.0:5000 (hub em /signaling). Para a mesma rede, também dá para usar o servidor embutido no app: ⚙️ Configurações → Iniciar servidor local.
dotnet run --project src/ZipP2P.App
Linha de comando:
| Argumento | Efeito |
|---|---|
--send <caminho> | Abre o painel compacto e já começa a enviar (usado pelo menu de contexto) |
--receive <código> | Abre a aba Receber com o código preenchido |
<caminho> | Igual a --send |
As configurações ficam em SQLite (%LOCALAPPDATA%/ZipStream/settings.db) e são editadas em ⚙️ Configurações: URL do servidor, porta do servidor local, menu de contexto. A pasta de destino é lembrada pela aba Receber.
http://192.168.0.10:5000/signaling).Cada release (tag v*) gera pelo GitHub Actions:
| Arquivo | Sistema |
|---|---|
ZipStream-Setup-<versão>-win-x64.exe | Windows — instalador (Inno Setup), por usuário, sem administrador; opção de já adicionar o menu de contexto |
zipstream_<versão>_amd64.deb | Debian/Ubuntu/Mint — sudo apt install ./zipstream_<versão>_amd64.deb; instala em /opt/zipstream, atalho no menu e comando zipstream |
ZipStream-win-x64.zip, ZipStream-linux-x64.tar.gz, ZipStream-osx-x64.tar.gz | Versões portáteis |
Para gerar uma release: git tag v1.2.3 && git push origin v1.2.3. Rodando o workflow manualmente (Actions → Release → Run workflow), os pacotes ficam nos artefatos da execução, sem criar release.
deploy/docker-compose.yml sobe o servidor de sinalização e o coturn (TURN). O HTTPS fica com um reverse proxy que já rode na VPS (ex.: Caddy): o servidor entra na network externa proxy (docker network create proxy, se ainda não existir) com o alias zipstream-server. No Caddyfile, com o proxy também nessa network:
zipstream.seudominio.com {
reverse_proxy zipstream-server:5000
}
git clone https://github.com/igoreusttaquio/ZipStream-P2P.git && cd ZipStream-P2P/deploy
cp .env.example .env # PUBLIC_IP e TURN_PASSWORD
docker compose up -d --build # atualizar: git pull && docker compose up -d --build
Firewall: liberar 3478/tcp+udp e 49160-49200/udp (80/443 já são do Caddy). Teste: https://zipstream.seudominio.com responde "ZipStream signaling server".
https://zipstream.seudominio.com/signaling.zipstream.seudominio.com:3478, usuário zipstream e a senha do TURN_PASSWORD → Salvar. Sem usuário, o servidor vale só como STUN. Sem nada configurado, o app usa o STUN público do Google (stun.l.google.com:19302), suficiente para a maioria das redes; o TURN só é necessário quando a conexão direta é bloqueada.⚙️ Configurações → Menu de contexto → Instalar / Remover.
| Sistema | Como é instalado | Observações |
|---|---|---|
| Windows | HKCU\Software\Classes\*\shell e Directory\shell (sem administrador) | No Windows 11 fica em "Mostrar mais opções" |
| Linux | Scripts do Nautilus e Caja, ação do Nemo, service menu do Dolphin | Melhor esforço; pode ser preciso reiniciar o gerenciador (nautilus -q) |
| macOS | Ação Rápida do Automator em ~/Library/Services | Experimental; melhor com o app em /Applications |
Se o app mudar de lugar, Configurações mostra que a entrada aponta para outra cópia — é só clicar em Instalar de novo.
No Linux, o ícone da bandeja usa o protocolo StatusNotifierItem (KDE, Cinnamon, XFCE...); no GNOME é preciso a extensão AppIndicator. Sem bandeja, abrir o app de novo traz a janela de volta.
Microsoft.NETCore.App e Microsoft.AspNetCore.App (servidor embutido). Instalar só o ASP.NET Core de uma versão mais nova que o .NET Runtime quebra a resolução — instale o .NET Runtime da mesma versão (dotnet --list-runtimes mostra o que há). Os pacotes do release já trazem o runtime.dotnet test
Detalhes no plan.md.