https://image.nostr.build/c44a4a2c7a6e249d8b4bae1c16fec492797e8efab8993131854a788914b8102f.jpg
O protocolo **Nex** é um protocolo de comunicação minimalista projetado para a "small web" (web pequena), priorizando a simplicidade e a leveza, de forma semelhante a protocolos como Gopher e Gemini.
Aqui está uma explicação detalhada de como ele funciona com base nos documentos técnicos:
### O que é o Nex?
O Nex é um protocolo de rede baseado em texto que opera sobre o protocolo de transporte **TCP**, utilizando por padrão a **porta 1900**. Ele foi criado para ser extremamente fácil de implementar, tanto do lado do servidor quanto do cliente, permitindo que informações sejam acessadas até mesmo com ferramentas simples de linha de comando.
### Como o protocolo funciona?
O funcionamento do Nex segue um modelo de requisição e resposta muito direto:
1. **Conexão e Requisição:** O cliente abre uma conexão TCP com o servidor na porta 1900 e envia um **seletor** (o caminho do recurso desejado) terminado por uma quebra de linha (`\n`).
* *Exemplo:* Para acessar a página inicial, o cliente envia apenas `/\n` ou `nex/\n`.
2. **Resposta do Servidor:** O servidor recebe o caminho, envia o conteúdo correspondente e, imediatamente após o término do envio dos dados, **fecha a conexão**. Não há cabeçalhos complexos como no HTTP.
3. **Formatos de Conteúdo:**
* **Arquivos de Texto:** São exibidos como texto puro.
* **Diretórios (Índices):** São listados linha por linha. Cada linha de um índice geralmente segue o formato: `[tipo] <nome de exibição> <caminho>`.
* **Links:** São identificados pelo prefixo `=>` seguido pelo caminho e uma descrição opcional.
### Ferramentas e Implementação
Como o protocolo é simples, ele pode ser acessado via terminal usando o utilitário `nc` (netcat):
* **Comando:** `echo nex/ | nc nightfall.city 1900`.
Existem ferramentas mais avançadas para gerenciar e navegar no protocolo Nex:
* **Servidores:** O **nexy** é um servidor de alto desempenho escrito em Rust que suporta múltiplas redes simultaneamente (IPv4, IPv6, #Yggdrasil, #Mycelium) e oferece recursos como logs de acesso e templates customizáveis.
* **Clientes (Browsers):** Além do terminal, existem clientes dedicados como o **rex** e o **Yoda** (este último suporta tanto o protocolo #Gemini quanto o #Nex).
Em resumo, o #Nex funciona eliminando a complexidade da web moderna, oferecendo uma forma direta de servir e consumir conteúdo textual de maneira eficiente.