12 repositorios
Mechanisms for managing the creation, disposal, and cleanup of event subscriptions to prevent memory leaks.
Distinct from Subscription Management: Existing candidates refer to commercial billing subscriptions or notification recipients, not programming memory management.
Explore 12 awesome GitHub repositories matching software engineering & architecture · Subscription Lifecycle Management. Refine with filters or upvote what's useful.
RxSwift is a reactive programming library for Swift that provides a framework for managing push-based data flows and composing asynchronous, event-based programs. It utilizes observable sequences and functional operators to transform and filter asynchronous sequences through a declarative approach. The library is distinguished by its ability to link asynchronous data streams directly to user interface elements, automating view updates via reactive data binding. It includes specialized tools for tracking UI control properties and events on the main thread, as well as the ability to encapsulate
Cleans up resources by disposing of subscriptions manually or using automated disposal bags.
The Reactive Extensions for JavaScript
Creating, cancelling, and cleaning up observer subscriptions to prevent memory leaks and control resource usage.
RIBs is a mobile architecture framework that structures applications around isolated, lifecycle-managed units of business logic called RIBs. Each RIB separates routing, business logic, and construction into distinct classes through the Router-Interactor-Builder pattern, with hierarchical dependency injection scoping dependencies per node and static analysis enforcing architectural rules at build time. The framework enforces automatic disposal of Rx subscriptions scoped to interactor lifecycles, blocking compilation when subscriptions lack proper disposal to prevent memory leaks. It supports v
Enforces automatic disposal of Rx subscriptions scoped to interactor lifecycles, blocking compilation on missing disposal.
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
Links data stream subscriptions to object lifecycles to ensure automatic resource cleanup when objects are destroyed.
Bacon.js is a JavaScript functional reactive programming library used for coordinating complex asynchronous data flows. It functions as an observable event stream framework and an asynchronous data flow orchestrator, allowing developers to model events as declarative streams and properties. The library distinguishes itself through its ability to manage reactive state and synchronize timing across multiple sources. It provides specialized mechanisms for atomic state synchronization to prevent glitches in derived properties and offers advanced coordination strategies such as asynchronous stream
Handles resource cleanup by tracking and disposing of event listeners when streams terminate to prevent memory leaks.
Vue Apollo is a GraphQL client library for Vue.js that integrates Apollo GraphQL queries and mutations into Vue components with reactive data binding. It provides a reactive data layer that automatically updates Vue component state when GraphQL query results change, and supports server-side rendering by prefetching queries during SSR to deliver fully populated HTML on initial page load. The library allows GraphQL queries and mutations to be declared directly inside Vue component options using the apollo property, keeping data dependencies co-located with the UI. It wraps Apollo Client's nor
Automatically subscribes to GraphQL subscriptions for active queries and unsubscribes on component unmount to prevent memory leaks.
re-frame es un framework funcional para construir aplicaciones de una sola página (SPA) en ClojureScript. Proporciona una base de datos centralizada e inmutable que sirve como única fuente de verdad para todo el estado de la aplicación, aplicando un flujo de datos unidireccional estricto donde los eventos activan transiciones de estado y actualizaciones de vista posteriores. El framework se distingue por un grafo de señales reactivas y un pipeline de middleware basado en interceptores. Al tratar la lógica de la aplicación como una secuencia de eventos basados en datos y efectos secundarios declarativos, desacopla la lógica de negocio de la capa de vista. Esta arquitectura permite a los desarrolladores gestionar transiciones de estado complejas y operaciones externas mediante funciones puras, asegurando que los efectos secundarios sean ejecutados por un intérprete separado en lugar de llamadas imperativas. El sistema incluye un conjunto completo de capacidades para gestionar la arquitectura de la aplicación, incluyendo la derivación de datos reactivos, la reconciliación de vistas basada en suscripciones y la gestión de estado impulsada por eventos. Admite flujos de trabajo de desarrollo avanzados como el rastreo de eventos, puntos de control de estado y la capacidad de crear stubs de efectos secundarios para pruebas aisladas. El proyecto está diseñado para integrarse con React, utilizando la reconciliación del DOM virtual para actualizar eficientemente las interfaces de usuario. Proporciona un conjunto robusto de utilidades para manejar preocupaciones transversales, gestionar grafos de flujo de datos complejos y coordinar operaciones asíncronas dentro de un pipeline de eventos secuencial y predecible.
Manages the creation and disposal of data subscriptions to prevent memory leaks and optimize performance.
RxPY es una librería de programación reactiva funcional y una librería de observables ReactiveX para Python. Funciona como un procesador de flujos asíncronos y un framework de coordinación basado en eventos, utilizado para construir pipelines de datos que reaccionan a cambios de estado o flujos de eventos a lo largo del tiempo. La librería proporciona un kit de herramientas para componer programas asíncronos y basados en eventos mediante secuencias observables y operadores. Se distingue por el uso de planificadores (schedulers) configurables para gestionar la concurrencia, el timing y los ciclos de vida de las suscripciones. El proyecto cubre una amplia gama de capacidades de procesamiento de flujos, incluyendo agregación, filtrado y combinación de datos. Proporciona mecanismos para la difusión de eventos, almacenamiento en búfer de secuencias y gestión de errores, así como herramientas para coordinar flujos observables con bucles de eventos asíncronos. Las pruebas y el aseguramiento de la calidad se apoyan en la simulación de tiempo virtual, el modelado con diagramas de mármol y la verificación de emisiones.
Monitors the creation and disposal of subscriptions to ensure proper resource cleanup and memory management.
Este repositorio es una colección de patrones de implementación prácticos y ejemplos de referencia para usar RxJava 2 en la gestión de flujos de datos asíncronos en aplicaciones Android. Sirve como guía de implementación de programación reactiva, proporcionando ejemplos de código para manejar lógica compleja basada en eventos y patrones asíncronos en entornos móviles. El proyecto se distingue por ofrecer implementaciones de referencia específicas para desafíos móviles comunes, como la búsqueda en tiempo real con debouncing, la paginación de listas bajo demanda para scroll infinito y el streaming de datos con prioridad de caché para reducir los tiempos de carga percibidos. También incluye ejemplos de arquitecturas de bus de eventos para una comunicación desacoplada en la aplicación. El código cubre una amplia gama de capacidades reactivas, incluyendo la gestión del ciclo de vida de las suscripciones para prevenir fugas de memoria, el cambio de hilos mediante schedulers y el uso de operadores funcionales para la transformación y combinación de flujos de datos. Además, demuestra la coordinación de red asíncrona y el uso de composite disposables para la gestión de suscripciones grupales.
Provides mechanisms for managing the creation and cleanup of event subscriptions to prevent memory leaks in mobile apps.
Este proyecto proporciona una especificación formal y un conjunto de interfaces estándar de Java para el procesamiento de flujos asíncronos. Define un protocolo estandarizado para pasar secuencias de elementos entre editores (publishers) y suscriptores a través de diferentes hilos, centrándose en una especificación de flujos reactivos para la JVM. El proyecto se centra en la interoperabilidad al proporcionar una API común que permite que diferentes bibliotecas de streaming asíncrono trabajen juntas. Esto se logra mediante un conjunto estándar de interfaces y mecanismos de puente que traducen entre especificaciones de streaming incompatibles. La especificación cubre un protocolo de contrapresión (backpressure) sin bloqueo para regular el flujo de datos y evitar la sobrecarga del sistema, requiriendo que los suscriptores señalen la demanda. También define el ciclo de vida de los flujos, incluyendo la gestión de suscripciones, el procesamiento de elementos y la terminación basada en señales para la limpieza de recursos. El proyecto incluye un framework para verificar el comportamiento del flujo y validar la lógica de procesamiento frente a las reglas de contrapresión y eventos asíncronos.
Manages the creation, disposal, and cleanup of the connection between producers and consumers to prevent memory leaks.
Effector is a reactive state management library and data flow orchestrator designed for building complex, event-driven applications. It models application logic as a directed acyclic graph, where state updates and asynchronous side effects propagate automatically through declarative pipelines. By decoupling business logic from user interface layers, it allows developers to maintain state in independent containers that communicate via standard interfaces, ensuring the system remains framework-agnostic. The library distinguishes itself through its robust support for isolated execution scopes, w
Provides mechanisms to attach and detach listeners to data streams for reactive update control.
Strawberry es una biblioteca GraphQL con tipado fuerte para Python que permite el diseño de esquemas utilizando anotaciones de tipo y dataclasses de Python. Funciona como un servidor GraphQL asíncrono y motor de ejecución, proporcionando un puente para exponer esquemas a través de frameworks web compatibles con ASGI como FastAPI, Django, Flask y Litestar. El proyecto implementa GraphQL Federation, permitiendo la creación de esquemas y entidades distribuidas que se fusionan en un supergrafo unificado a través de múltiples servicios. También incluye un kit de herramientas dedicado para la especificación Relay, soportando la identificación global de objetos y la paginación basada en conexiones. El framework cubre un amplio conjunto de capacidades, incluyendo streaming de datos en tiempo real mediante WebSockets y Server-Sent Events, mapeo de modelos Pydantic y generación automática de código. Proporciona herramientas integradas para seguridad y observabilidad, como limitación de complejidad de consultas, control de acceso basado en roles y rastreo de métricas de ejecución. Los desarrolladores pueden realizar prototipos utilizando un servidor de desarrollo integrado con una interfaz de inspección de esquemas interactiva.
Manages the lifecycle of data streams by detecting client unsubscriptions through the capture of cancellation exceptions.