Skip to content

suissa/purecore-asyncify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@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.

Como foi feito

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.

Técnicas utilizadas:

  • 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

Como funciona

A biblioteca funciona através de uma classe central AsyncWay que gerencia diferentes tipos de comunicação:

  1. Eventos Locais: Sistema Pub/Sub interno para comunicação entre componentes
  2. WebSocket: Comunicação bidirecional com servidores
  3. Server-Sent Events: Streaming unidirecional do servidor para o cliente
  4. Streams Nativos: Processamento de dados em tempo real com suporte a cancelamento

Exemplo de uso:

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));

Como testar

  1. Abra o arquivo test/index.html em um navegador
  2. Teste os diferentes tipos de comunicação disponíveis
  3. Use o console do navegador para ver os logs de debug

CHANGELOG

Para ver todas as mudanças e correções implementadas, consulte o CHANGELOG.md.


Fontes de informação:

About

Generic Interface for Async channels

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published