Sobre o projeto

O FireX Proxy é uma extensão de navegador para Chrome/Chromium e Firefox que funciona como um alternador de proxies para endpoints HTTP, HTTPS, SOCKS4 e SOCKS5. Existe há mais de dez anos e já alcançou milhões de usuários; a infraestrutura hospedada original não está mais em operação, e o projeto agora opera de forma serverless e independente, sem contas ou dependência dos servidores do FireX Proxy. A extensão permite que os usuários adicionem proxies manualmente, sincronizem proxies a partir de um ou mais arquivos de texto simples remotos e apliquem regras de bypass nativas do navegador para hosts que não devem usar o proxy. Um atualizador agendado do GitHub Actions atualiza a fonte de proxies padrão do repositório (`proxies.txt`) a cada seis horas. O atualizador busca feeds públicos de proxies específicos por protocolo, normaliza-os para o formato da fonte, remove duplicatas e filtra endereços não roteáveis/privados. Ele também pode ser executado localmente com `make update-proxies` ou pré-visualizado com `npm run update:proxies -- --dry-run --limit 20`. Como as listas públicas de proxies envelhecem rapidamente, a extensão opcionalmente usa um aplicativo complementar em Rust chamado `firex-native`. Esse aplicativo nativo é executado no computador do usuário, testa proxies candidatos diretamente, mede o tempo de resposta, para quando encontra proxies funcionais suficientes e reporta o progresso de volta à interface da extensão. Sem o FireX Native, a extensão ainda funciona como um alternador de proxies normal, com adição manual, sincronização de fontes, conectar/desconectar e regras de bypass. O projeto é construído a partir de uma única base de código para Chrome e Firefox. Os comandos de desenvolvimento incluem `make dev` e `make dev-firefox` para o modo de desenvolvimento, e `make build-chrome` / `make build-firefox` para pacotes de produção gravados em `dist/`. O ferramental de release para o aplicativo nativo é fornecido por meio de `make native-manifest` e `make native-release VERSION=0.1.2`, que atualiza a versão do crate Rust, atualiza o `Cargo.lock`, sincroniza o `native-manifest.json`, cria uma tag de versão e dispara builds de instaladores e a publicação de ativos de release.