@purecore/asyncify é uma biblioteca agnóstica para comunicação assíncrona unificada. Une WebSocket, SSE, Streams e Eventos locais em uma única interface Pub/Sub.
Este projeto implementa uma abordagem unificada para comunicação assíncrona através de diferentes protocolos (WebSocket, Server-Sent Events, Streams nativos e eventos locais). A biblioteca @purecore/asyncfy foi desenvolvida com foco em simplicidade e flexibilidade, permitindo que desenvolvedores usem uma única API para diferentes tipos de comunicação assíncrona.
- Padrão Pub/Sub: Implementação de um sistema de publicação/assinatura unificado
- Streams Nativos: Utilização da API ReadableStream do navegador para processamento de dados em tempo real
- AbortController: Controle de cancelamento assíncrono para streams
- EventSource API: Integração nativa com Server-Sent Events
- WebSocket API: Suporte completo para comunicação bidirecional
- Map/Set: Estruturas de dados eficientes para gerenciamento de listeners e streams ativos
A biblioteca funciona através de uma classe central AsyncWay que gerencia diferentes tipos de comunicação:
- Eventos Locais: Sistema Pub/Sub interno para comunicação entre componentes
- WebSocket: Comunicação bidirecional com servidores
- Server-Sent Events: Streaming unidirecional do servidor para o cliente
- Streams Nativos: Processamento de dados em tempo real com suporte a cancelamento
const app = new AsyncWay({ debug: true });
// Eventos locais
app.sub('meu:evento', (data) => console.log(data));
app.pub('meu:evento', 'Olá Mundo!');
// Streams
const stream = new ReadableStream({...});
app.sub(stream, (chunk) => console.log(chunk));- Abra o arquivo
test/index.htmlem um navegador - Teste os diferentes tipos de comunicação disponíveis
- Use o console do navegador para ver os logs de debug
Para ver todas as mudanças e correções implementadas, consulte o CHANGELOG.md.
Fontes de informação:
