---
id: 33b4cfbec34c4d839daf853bf4a39b3e
author: Lemon Mint
title: 'Portalite: SDK Go leve para Portal baseado em múltiplos vínculos de relé e net.Listener padrão'
description: Um cliente e CLI Portal leve que oferece suporte à interface padrão net.Listener do Go, à vinculação simultânea a múltiplos relés, à criptografia ponta a ponta (E2EE) e à recuperação automática de sessões.
language: pt
date: 2026-08-26T14:05:55.212694445Z
path: /portalite
go_package: gosuda.org/portalite
go_repourl: https://github.com/gosuda/portalite.git
category: network
---

Anteriormente, ao apresentar o [Portal](https://github.com/gosuda/portal), abordamos os problemas da web moderna. Com o surgimento das ferramentas de codificação com IA, qualquer pessoa passou a poder criar um site, mas a tarefa de publicá-lo no mundo continua reservada aos grandes plataformas e ao monopólio da nuvem. O Portal separa a hospedagem na web da produção de conteúdo e, ao conectar serviços locais de indivíduos ao mundo inteiro por meio de relés com criptografia ponta a ponta, devolve aos indivíduos o poder de publicar.

## Apresentamos o Portalite

Hoje, tenho o prazer de apresentar o [Portalite](https://github.com/gosuda/portalite). O Portalite é **um cliente Portal ultraleve e um Go SDK construído com dependências mínimas**.

Se o Portal representa a filosofia de "como transformar a web", o Portalite é a cola mais fina que integra essa filosofia aos aplicativos dos desenvolvedores. Sem configurações complexas de nuvem ou pipelines de implantação, o desenvolvedor pode importar o SDK, adicionar algumas linhas de código e incorporar um ingress de portal ao seu aplicativo. No momento em que o aplicativo é executado, o servidor que existia apenas localmente torna-se um serviço público acessível de qualquer lugar da internet.

## 1. Ingress Público Concluído com Duas Linhas de Código

O Portalite oferece suporte à interface padrão do Go, [`net.Listener`](https://pkg.go.dev/net#Listener). Basta substituir o listener de um framework web ou código de servidor existente para que funcione imediatamente.

```go
identity, err := portalite.GenerateIdentity("my-service")

listener, err := portalite.Expose(ctx, portalite.ExposeConfig{
    Relays:   portalite.DefaultRelays(),
    Identity: identity,
})

http.Serve(listener, handler)
```

- **Sem configuração (Zero-config):** não são necessários encaminhamento de portas, IP fixo ou regras de entrada no firewall.
- **Compatibilidade padrão:** é 100% compatível com `http.Server`, `grpc.Server`, Gin, Echo, Chi e todas as bibliotecas Go que utilizam o `net.Listener` padrão.

## 2. Essencial: Vinculação Simultânea a Múltiplos Relés (Multi-Relay Binding)

A maioria das ferramentas de túnel depende de um único endpoint; por isso, quando o servidor relé cai, o serviço também é interrompido. **O Portalite opera conectado simultaneamente a vários servidores relé.**

- **Isolamento de falhas sem interrupção (Failover):** mesmo que alguns relés fiquem indisponíveis ou apresentem latência de rede, os relés restantes continuam recebendo tráfego pelo mesmo listener virtual.
- **Eliminação do ponto único de falha (SPOF):** desde que não todas as sessões de relé sejam encerradas simultaneamente, o loop `Accept()` da aplicação não é interrompido.
- **Criptografia ponta a ponta (E2EE):** o tráfego é criptografado durante a transmissão, de modo que os servidores relé não podem visualizar nem adulterar os dados.
- **Reconexão automática e autorrecuperação (Self-Healing)**: mesmo em caso de desconexões temporárias de rede ou reinicializações do relé, as sessões e os tokens são renegociados automaticamente em segundo plano, restabelecendo a conexão.

## 3. Uso Imediato com um Único Comando de CLI

Caso não utilize código Go ou precise de um teste rápido, basta informar o número da porta à CLI.

```sh
$ go install gosuda.org/portalite/cmd/portalite@latest && portalite expose --name "my-service" 3000
URL https://my-service.rly.best
URL https://my-service.s-h.day

```

Logo após a execução do comando, são emitidas URLs de múltiplos relés, e o serviço fica imediatamente acessível externamente.

## 4. Leveza com Recursos Poderosos

- **Dependências mínimas:** ao eliminar dependências de terceiros, o binário fica mais leve e a compilação, mais rápida.
- **Suporte a TLS e UDP:** além do tráfego TLS, como HTTP/gRPC, é possível expor com facilidade serviços UDP, como servidores de jogos, por meio de backhaul de datagramas QUIC.

## Como Começar

- Repositório no GitHub: [https://github.com/gosuda/portalite](https://github.com/gosuda/portalite)
- Pacote Go: `go get gosuda.org/portalite`
