6 repositorios
Primitives for executing multiple asynchronous effects in parallel and aggregating their results into joint types.
Distinct from Parallel Effect Chain Combiners: Candidates are for audio chains or device operation; this is a general concurrency primitive for value aggregation.
Explore 6 awesome GitHub repositories matching software engineering & architecture · Concurrent Effect Combinators. Refine with filters or upvote what's useful.
Redux-Saga is a middleware library for Redux applications that manages asynchronous data flows and complex side effects. It serves as a decoupled state management effect layer and workflow orchestrator, utilizing JavaScript generator functions to pause and resume asynchronous operations without blocking the application. The library distinguishes itself by using generators to manage sequential or parallel tasks and state transitions outside of the main user interface thread. This approach allows for the coordination of complex asynchronous workflows, such as multi-step data fetching and API ca
Coordinates complex asynchronous flows and side effects using an effect-handler architecture.
fp-ts is a TypeScript library that brings pure functional programming patterns to the language through algebraic data types, type class abstractions, and composable combinators. It provides foundational data types like Option for optional values, Either for typed error handling, and Task for lazy asynchronous computations, all designed to make invalid states unrepresentable and side effects explicit. The library is built on category theory concepts, offering type classes such as Functor, Applicative, Monad, Semigroup, and Monoid with lawful instances for common data structures. The library di
Combines multiple named effectful computations into a single effect producing a record of results.
OCaml is a strongly typed functional language featuring a sophisticated type system and a focus on safety and expressiveness. It provides a comprehensive compiling toolchain that transforms source code into either portable bytecode or high-performance native binaries. The project is distinguished by a shared memory parallel runtime that executes computations across multiple processor cores using domains, and an algebraic effect system for managing side effects and control flow through execution context handlers. It also includes a dedicated parser generator to automatically create lexers and
Coordinates asynchronous program flow and side effects using effect handlers to organize concurrent operations.
Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data structures, synchronization primitives, and asynchronous execution patterns. It implements core concurrency abstractions including an actor model framework where isolated actors communicate through asynchronous message passing, a future and promise system for composing non-blocking operations, and thread pool executors that manage reusable worker threads for concurrent task execution. The library distinguishes itself through a broad set of coordination mechanisms that go beyond basic th
Provides combinators to wait for multiple futures and collect their results into a single array.
Cats es una biblioteca de programación funcional y type classes para Scala, diseñada para implementar patrones algebraicos y abstracciones funcionales. Proporciona un conjunto estandarizado de interfaces y un kit de herramientas modular de wrappers y contenedores funcionales para permitir el polimorfismo ad-hoc y la programación genérica entre tipos dispares. El proyecto sirve como estándar de abstracción funcional, ofreciendo una suite de transformadores de mónadas para componer contextos con efectos anidados y manejar múltiples efectos secundarios computacionales dentro de un solo pipeline. Además, permite la construcción de lenguajes específicos de dominio (DSL) embebidos al representar la lógica del programa como estructuras de datos que se interpretan por separado de sus definiciones. La biblioteca cubre amplias áreas de capacidad, incluyendo la manipulación algebraica de datos para combinar y reducir valores, gestión de estado con seguridad de tipos y manejo funcional de errores para formalizar la acumulación y recuperación de errores. También proporciona herramientas para la gestión de computación con efectos y la extensión de tipos de colección estándar con capacidades funcionales. La biblioteca incluye mecanismos para la validación de leyes algebraicas, asegurando que las instancias de type classes cumplan con las propiedades matemáticas.
Ships primitives for executing multiple asynchronous effects in parallel and aggregating their results.
ZIO is a functional effect system for the JVM that models asynchronous and concurrent programs as pure, composable values with typed error handling and dependency injection. Its core identity is built on fiber-based concurrency, where lightweight, non-blocking fibers execute millions of concurrent tasks with structured lifecycle management, and a dual-channel error model that separates expected business failures from unexpected system defects at compile time. The system provides effect-typed dependency injection through a layer-based dependency graph, pull-based reactive stream processing with
Builds complex concurrent logic by combining small transactional steps with combinators.