🌐Crom-Nexus v3: Um "Navegador de Terminal" Programável em Go (Open Source)
Olá TabNews!
Sou o criador do Crom-Nexus, e hoje estou liberando a versão 3.0 desse projeto que nasceu da minha frustração com a complexidade de ferramentas como Puppeteer/Selenium para tarefas simples. O Nexus é um Runtime de Terminal para a Web. Imagine se o curl tivesse um motor JavaScript embutido, uma interface visual (TUI) e fosse capaz de processar o DOM como um navegador, mas sem o peso de um Chromium.
A ideia central é: "A Internet é o SO, o Nexus é o Kernel". Ele permite que você escreva pequenos drivers em JavaScript (.nx.js) que navegam, extraem dados e interagem com APIs ou HTML, tudo rodando nativamente no seu terminal via um binário Go de ~15MB. Diferente de soluções headless que consomem RAM absurda, o Nexus foca em parsing estático e emulação de ambiente.
Como o Nexus se Compara?
Aqui está um comparativo direto com outras ferramentas que você talvez conheça:
| Feature | Crom-Nexus | Puppeteer/Playwright | Curl / Wget |
|---|---|---|---|
| Engine | Go + Goja (JS VM) | Chromium / WebKit | Libcurl (C) |
| Consumo de RAM | ~30MB | ~500MB+ | ~5MB |
| JavaScript | Sim (ES5+ Runtime) | Sim (V8 Completo) | Não |
| Interface (TUI) | Sim (Nativa) | Não (Headless) | Não |
| Foco | Automação Rápida/CLI | Testes E2E / Renderização | Requisições Simples |
| Instalação | 1 Binário | Node + Browser Binaries | Binário do Sistema |
Confiabilidade e Testes
Não queria lançar apenas "mais uma ferramenta", então a versão 3.0 passou por uma bateria de validação rigorosa antes de chegar aqui. Implementamos um pipeline de testes que cobre:
- Segurança (Vault): Testamos exaustivamente o Nexus Vault, que usa criptografia AES-256-GCM para guardar segredos (como chaves de API) localmente. Nada fica em texto plano.
- Networking & SSL: Validamos o cliente HTTP contra APIs reais (CoinGecko, Ipify) para garantir estabilidade em conexões seguras e parsing de JSON complexo.
- Pipelines (Stdin): O Nexus foi desenhado para ser "pipeable". Você pode injetar scripts dinamicamente via
echo "..." | nexus run -, o que permite integrá-lo em scripts Bash ou CI/CD sem criar arquivos temporários.
O relatório completo de verificação está disponível na documentação (docs/TEST_REPORT_PT.md), com gráficos de cobertura e insights sobre a arquitetura do Goja.
SDK Universal: Use em Python, Node, PHP...
Uma das "features ocultas" mais poderosas do Nexus é a flag --json. Ela transforma qualquer saída visual (TUI) em JSON estruturado, permitindo que você use o Nexus como um motor de scraping e execução para sua linguagem favorita.
Em vez de importar bibliotecas pesadas de browser no seu backend Python, você pode simplesmente chamar o binário:
import subprocess, json
# O Nexus faz o trabalho pesado (request, bypass, parsing)
result = subprocess.run(
["nexus", "@google", "search", "golang", "--json"],
capture_output=True
)
data = json.loads(result.stdout)
print(f"Top Result: {data[0]['title']}")
No repositório, incluí exemplos prontos ("Wrappers") para Python e Node.js na pasta examples/, mostrando como criar servidores API e scripts de automação que delegam a navegação para o Nexus.
O Que Dá Para Fazer?
O Nexus brilha onde você precisa de interatividade no terminal ou automação leve. Alguns exemplos que já funcionam no ecossistema:
- Search CLI: Pesquisar no Google/DuckDuckGo e ver resultados limpos no terminal.
- Crypto Tracker: Acompanhar preços de Bitcoin em tempo real com tabelas coloridas.
- Dev Tools: Geradores de UUID, conversores de moeda, leitores de notícias (HackerNews/TabNews).
- Security: Scripts de reconhecimento que usam rotação de User-Agent.
Como Testar
O projeto é 100% Open Source (MIT). Se você curte Go, CLI tools ou automação, adoraria receber seu feedback ou PRs.
Para rodar agora mesmo (Windows/Linux/Mac):
# Baixar e instalar (exemplo genérico, veja o repo para o comando exato)
git clone https://github.com/MrJc01/crom-nexus
cd crom-nexus && go build ./cmd/nexus
# Rodar um exemplo
./nexus run nexus-scripts/joke/script.nx.js
O repositório está aqui: GitHub - crom-nexus
Espero que seja útil para alguém! Qualquer dúvida técnica sobre a implementação em Go ou sobre a VM JS, estou por aqui nos comentários. 🤝