Executando verificação de segurança...
1

Wasabi v2.3.5-beta: Transformando o VBA em um Framework de Rede Modular (WebSocket, TCP, MQTT 5 e Assembly)

A Inspiração: Um Ecossistema Plugável

A inspiração para essa atualização veio diretamente de ambientes modernos, como o ecossistema do Express.js no Node.js. O maior problema de lidar com redes e automação no VBA é que os códigos tendem a virar scripts massivos, acoplados e difíceis de manter.

O objetivo agora foi transformar o núcleo do Wasabi em um "Dumb Pipe" (um tubo de transporte burro). O motor principal cuida exclusivamente do trabalho pesado de baixo nível: sockets TCP raw, criptografia nativa via Schannel (TLS 1.3) e roteamento inteligente IPv6/IPv4 usando o algoritmo de Happy Eyeballs. Todo o resto da lógica de aplicação se tornou peças conectáveis.

Protocolos, Middlewares e Compressão Customizável

As fronteiras internas do módulo agora são oficiais e expostas. Você pode injetar lógicas complexas de aplicação sem nunca precisar modificar o código do motor de transporte. Foram criadas três portas de injeção:

  • WasabiUseProtocol: Intercepta mensagens já parseadas para que você possa criar protocolos customizados por cima do WebSocket (como clientes para APIs específicas).
  • WasabiUseMiddleware: Intercepta arrays de bytes brutos antes do envio e após o recebimento. Permite encadear middlewares para logging de tráfego, criptografia de ponta-a-ponta (E2E) ou transformação de payload.
  • WasabiUseCompression: Substitui ou fornece a interface para o algoritmo de compressão.

Veja como a nova arquitetura funciona na prática dentro de uma macro:

Dim h As Long
Dim trafficLogger As New MyLoggingMiddleware
Dim customCompressor As New MyZlibWrapper
Dim customProtocol As New MyEnterpriseParser

' 1. Injeta um algoritmo de compressão customizado (ex: Zlib, LZ4, Brotli)
WasabiUseCompression customCompressor, h

' 2. Injeta um middleware para interceptar os bytes brutos (ex: AES-256)
WasabiUseMiddleware trafficLogger, h

' 3. Injeta um parser de protocolo de alto nível
WasabiUseProtocol customProtocol, h

' 4. Conecta usando a camada de transporte "Dumb Pipe"
If WebSocketConnect("wss://api.exemplo.com/stream", h, True) Then
    
    ' O motor principal cuida da matemática do TLS e dos buffers do SO.
    ' Suas extensões injetadas cuidam da transformação dos dados.
    WebSocketSend "Init", h
    
End If

Compressão Agnóstica (A Comunidade no Controle)

Nas documentações anteriores, havia um mal-entendido de que a zlib1.dll era uma dependência obrigatória. Isso foi corrigido. O motor agora utiliza uma interface de Inversão de Controle nativa. A camada de compressão (permessage-deflate) foi oficialmente desacoplada.

No momento, eu ainda não publiquei extensões oficiais (lançarei com o tempo). Contudo, a arquitetura já está 100% pronta. Isso significa que qualquer pessoa da comunidade pode escrever seus próprios wrappers para algoritmos como LZ4, Brotli ou Zstandard e plugar direto no pipeline do Wasabi. Se você não registrar um handler de compressão, absolutamente nada é carregado na memória, mantendo o princípio estrito de zero dependências do módulo core.

Motor MQTT 5 e Redes Modernas

O client MQTT embutido no projeto também foi atualizado para alavancar essa nova arquitetura:

  • QoS 2 (Exactly Once): Implementação completa do handshake de 4 vias (PUBREC, PUBREL, PUBCOMP), garantindo entrega em ambientes corporativos instáveis.
  • User Properties: Os métodos de publicação agora aceitam chaves e valores de metadados para comunicação com brokers MQTT 5.
  • Reason Codes: A lógica de recebimento agora extrai e expõe strings de diagnóstico e códigos de erro diretamente dos pacotes de desconexão.

Tudo isso trabalha em conjunto com um novo modelo de leitura Zero-Copy. O motor agora fornece acesso direto via ponteiro (LongPtr) para os buffers internos de string, ignorando as lentas alocações e cópias redundantes de memória do VBA durante fluxos massivos de dados.

Ah, e para quem acompanhou o projeto antes: o Motor de Assembly (x86/x64) introduzido nas versões anteriores continua intacto. O Wasabi continua alocando memória executável e rodando opcodes nativos na CPU para mascaramento XOR do WebSocket e buscas em buffers TCP, garantindo performance de nível C e deixando a UI do Office totalmente livre.

Fase Experimental e Contribuições

Vale ressaltar que essas novas fronteiras modulares ainda estão em fase experimental. Se encontrarem qualquer bug, erro ou edge case bizarro durante os testes, por favor, reportem sem problemas na nossa página de Issues.

Qualquer contribuição é sempre muito bem-vinda, seja um bug report, um code review, uma melhoria na documentação ou compartilhando uma extensão legal que você construiu!

Links do Projeto:

Carregando publicação patrocinada...