17 repositorios
Decoupled messaging systems that route data based on the type of the message.
Distinct from Message Routing: Focuses on type-filtered in-memory pub-sub rather than network routing or broker infrastructure.
Explore 17 awesome GitHub repositories matching software engineering & architecture · Type-Based Message Routing. Refine with filters or upvote what's useful.
WeiXinMPSDK is a .NET software development kit designed to integrate WeChat services, official accounts, and mini programs into applications. It provides a multi-platform bot framework and a programmatic interface to interact with official, mini, and corporate accounts across the WeChat ecosystem. The project features interface-based platform abstraction and logic unification, allowing a single codebase to target multiple target platforms. It includes a messaging middleware for routing incoming requests and a distributed caching layer using providers like Redis or Memcached to synchronize ses
Implements a dispatch system that routes incoming requests to specific handlers based on the message type.
Zinx is a lightweight TCP server framework written in Go that provides a structured foundation for building scalable network applications. It combines a goroutine-pool worker model for concurrency control with message-ID-based routing, enabling efficient packet dispatching to registered handler functions. The framework distinguishes itself through its modular plugin architecture, which organizes server components like routers, connections, and message modules as interchangeable plugins for extensibility. It uses packet-header length prefixing for reliable TCP stream framing, assigns a dedicat
Routes incoming packets to handler functions based on a numeric message identifier in the packet header.
UniRx is a reactive programming library and event orchestration framework for the Unity engine. It implements observable sequences and functional operators to transform callbacks, coroutines, and engine events into cancellable data streams for unified asynchronous event handling. The library provides a reactive UI binding system that synchronizes data models with user interface elements to trigger automatic visual updates. It includes a type-based publication and subscription system to route messages between producers and consumers, decoupling internal game components. The framework covers a
Decouples components by routing messages between producers and consumers using a type-filtered publication and subscription system.
This project is an email alias management platform and masking proxy designed to protect user privacy. It functions as a gateway that creates unique email addresses to hide a user's primary mailbox, forwarding incoming messages while routing outbound replies through a reverse-proxy to maintain sender anonymity. The system distinguishes itself through advanced domain and privacy controls, including the ability to link personal domains via DNS for branded aliases and catch-all routing. It further secures communications via a PGP encryption gateway that encrypts forwarded email content using pub
Routes outbound email replies through a reverse-proxy alias server to hide the primary sender address.
noice.nvim is a Neovim UI enhancement plugin that replaces the editor's default command-line, notification, and popup-menu interfaces with a modern, customizable floating-window system. It provides a command-line popup menu, an LSP progress viewer, a message routing framework, and a notification display system with configurable layouts and severity-based styling. The plugin routes Neovim messages to different visual containers based on event type, kind, or content, and displays notifications with customizable layouts, icons, and severity-based styling in floating windows. It visualizes ongoin
Ships a message routing framework that redirects Neovim messages to different visual containers based on event type, kind, or content.
OpenWeChat es un kit de desarrollo de software (SDK) y envoltorio de API en lenguaje Go diseñado para integrar la mensajería y gestión de cuentas de WeChat en aplicaciones Go. Sirve como framework de bots y biblioteca de mensajería para manejar eventos de chat en tiempo real e interacciones programáticas con la plataforma. El proyecto proporciona un sistema integral para la gestión de sesiones, incluyendo autenticación mediante código QR y la persistencia de cookies de sesión en formato JSON para mantener el acceso tras reinicios. Se distingue por ofrecer capacidades para interceptar y preservar mensajes que los remitentes intentan revocar, así como soporte para la gestión de sesiones multi-cuenta. La biblioteca cubre una amplia gama de áreas funcionales, incluyendo lógica de entrega y respuesta automática de mensajes, gestión de contactos y grupos, y recuperación de datos de perfil de usuario. También incluye herramientas para el manejo de medios, como la descarga de archivos compartidos e identificación de tipos de contenido mediante análisis de cabeceras de archivo. El SDK implementa un sistema de encadenamiento de mensajes basado en middleware y utiliza detección de eventos basada en polling para sincronizar los datos entrantes.
Dispatches incoming messages to specific handlers based on content type or custom matching logic.
WeRoBot es un framework de desarrollo de chatbots y biblioteca de integración de API diseñado para construir bots automatizados y gestionar interacciones para cuentas oficiales de WeChat. Proporciona un entorno estructurado para procesar entradas de usuario y entregar respuestas programadas a través de un motor de enrutamiento de mensajes dedicado. El framework se distingue por un gestor de sesiones con estado que persiste los datos del usuario a través de interacciones utilizando backends de almacenamiento conectables. También cuenta con un sistema de enrutamiento que analiza cargas útiles XML y dirige el tráfico a manejadores específicos basados en contenido, eventos o patrones de texto. La biblioteca cubre una amplia gama de capacidades, incluyendo gestión de activos multimedia, administración de perfiles y etiquetas de usuario, y la entrega de mensajes de plantilla y transmisiones. Incluye primitivas de seguridad para la verificación de firmas de solicitud y descifrado de mensajes, junto con herramientas para gestionar menús interactivos personalizados y reenvío de servicio al cliente. El proyecto proporciona una capa de integración compatible con WSGI, permitiendo que la lógica del bot se aloje en servidores web estándar o se incorpore en frameworks web existentes.
Directs incoming traffic to specific handlers based on the request type, such as text, image, or event.
Quasar es un framework de concurrencia para la JVM que implementa el modelo de actores y una librería de hilos ligeros. Proporciona unidades de ejecución aisladas que se comunican mediante paso de mensajes asíncronos para eliminar el estado mutable compartido. El proyecto se distingue por un sistema de actores distribuido capaz de operar a través de múltiples nodos de clúster con registros de ubicación transparente y migración de estado de actores. Utiliza un planificador de fibras (fibers) con robo de trabajo (work-stealing) para gestionar millones de hilos ligeros, permitiendo que las tareas se suspendan durante operaciones de E/S no bloqueantes sin detener los hilos del sistema subyacente. El framework abarca un amplio conjunto de capacidades, incluyendo jerarquías de supervisión para la recuperación tolerante a fallos y canales de comunicación al estilo CSP para la sincronización de flujo de datos. También proporciona primitivas para coordinar tareas mediante futures y variables de flujo de datos, así como herramientas para monitorear la salud de las fibras y detectar ejecuciones fuera de control. El sistema está implementado en Java.
Implements type-based filtering to retrieve messages of a specific class from an actor's mailbox.
Ergo is a distributed actor framework for Go that implements the Erlang distribution protocol, enabling the construction of resilient, concurrent applications that can communicate transparently with Erlang/OTP nodes. At its core, it provides an actor model with isolated lightweight processes, priority-ordered mailboxes, and a meta-process architecture that separates blocking I/O from sequential message handling to prevent actor freezing. The framework includes a Raft-inspired cluster consensus system for leader election and automatic failover, along with OTP-style supervision trees that organi
Ships a message routing system that dispatches to different callbacks based on the address type of the recipient.
Cellnet is a Go networking framework designed for building distributed systems and peer-to-peer networks. It provides a multi-protocol transport layer that standardizes message exchange across TCP, UDP, and WebSockets, utilizing a binary message codec system to map message types to unique identifiers for network transmission. The framework is distinguished by its remote procedure call library, which enables the execution of functions on remote peers using synchronous or asynchronous request patterns. It further differentiates itself with an asynchronous event dispatcher that processes network
Implements a handler-based routing system that directs incoming packets to specific logic blocks using unique message IDs.
swift-log is a standardized logging API and abstract logging layer for Swift applications and libraries. It provides a unified interface for emitting log messages, decoupling the act of recording events from the specific storage or display implementation. The system functions as a logging backend interface, allowing log output to be routed to custom third-party destinations through the implementation of pluggable handlers. This framework focuses on Swift application observability and logging standardization, ensuring a consistent set of requirements for recording system behavior across diffe
Routes log messages from a generic interface to specific backend implementations via registered handler functions.
Hydrogen es un entorno de ejecución de código interactivo e integración de editor de texto que permite la ejecución de líneas o bloques de código individuales con salida inmediata en línea. Funciona como un cuaderno interactivo políglota y un orquestador de kernels remoto, permitiendo a los usuarios ejecutar código a través de kernels de Jupyter y renderizar medios enriquecidos, como gráficos, imágenes y video, directamente dentro del editor. El sistema se distingue por la gestión remota de kernels, enrutando la ejecución de código a contenedores externos o servidores remotos a través de sockets de red. Mantiene un entorno de programación con estado donde los espacios de nombres de lenguaje persisten a través de múltiples archivos, permitiendo el seguimiento del estado de las variables y el autocompletado de código consciente del kernel basado en el runtime activo. La plataforma cubre además el control del ciclo de vida del kernel, incluyendo la capacidad de interrumpir o reiniciar entornos. Incluye un sistema de plugins para extender las características del lenguaje y la funcionalidad de la interfaz de usuario.
Routes execution requests and results between the editor and local or remote language environments.
Easyloggingpp is a header-only C++ logging framework and diagnostic tool designed for recording system events and diagnostic messages. It functions as a thread-safe logging library that synchronizes access across multiple concurrent execution threads to prevent data corruption during event recording. The framework features an asynchronous logger that processes messages on a background thread to minimize latency and prevent blocking the main application. It also acts as a log dispatcher, capable of routing data to local files, system syslog facilities, or remote network destinations for system
Dispatches log events from a generic API to specific handler implementations based on registration.
RISE is an interactive notebook presentation tool and slideshow manager designed to transform Jupyter and IPython notebooks into structured slide decks. It functions as an extension that allows a user to toggle between a standard editable notebook view and a full-screen slideshow format during live demonstrations. The system utilizes the Reveal.js framework to render notebook cells as formatted slides, mapping Jupyter metadata to determine slide breaks and fragment sequences. This integration enables the creation of computational slide decks where running Python code and interactive visualiza
Provides bidirectional message routing between the presentation interface and the IPython kernel for live code execution.
Zappa is a serverless Python framework and command-line tool used for packaging and deploying Python web applications to AWS Lambda. It functions as a serverless infrastructure automator that provisions API Gateways, IAM roles, and SSL certificates to run ASGI and WSGI applications as serverless functions. The tool distinguishes itself by providing a management CLI for executing remote administration scripts and management commands directly within the deployed environment. It includes specific mechanisms for serverless performance tuning, such as scheduling regular warm-up invocations to prev
Uses a single entry point function to dispatch incoming requests to specific application routes.
VulkanTutorial is a comprehensive educational guide and instructional resource for implementing low-level rendering and compute pipelines using the Vulkan API. It serves as a GPU programming course and a step-by-step guide for building high-performance graphics applications from scratch. The project provides detailed instruction on the full graphics pipeline, including the compilation of shaders to SPIR-V bytecode, the configuration of rasterization states, and the implementation of 3D graphics pipelines. It also covers general-purpose GPU compute programming, focusing on the execution of par
Provides functionality to redirect and filter validation layer output to custom debug functions.
kill-the-newsletter is a self-hosted email gateway and converter that transforms email newsletters into Atom feeds. It functions by capturing incoming mail via unique email addresses and republishing the content as structured web feeds. The system utilizes unique-address routing to identify and sort incoming messages into their respective destinations. It includes embedded control links within the generated feeds, allowing for the modification or removal of feed settings via HTTP requests. The project covers email-to-feed transformation and the generation of XML based on the Atom syndication
Assigns distinct email addresses to each feed to identify and sort incoming messages.