14 مستودعات
Representing synchronous and asynchronous side effects as pure values to ensure referential transparency.
Distinct from Side Effect Handlers: Distinct from Side Effect Handlers: focuses on the modeling of effects as pure values rather than the architectural handling/dispatching of commands.
Explore 14 awesome GitHub repositories matching software engineering & architecture · Side Effect Execution Encapsulation. Refine with filters or upvote what's useful.
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
Executes an effect for its side effects while discarding the result to maintain the original value pipeline.
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
Allows executing functions for side effects on every stream value while preserving the original data flow.
Roc is a statically typed, functional programming language built around immutable-by-default semantics, exhaustive pattern matching on tag unions, and a type system that combines optional explicit annotations with full compile-time type inference. Its core identity centers on correctness and expressiveness, using tagged unions for error handling with a question-mark operator for early error propagation, and a trailing-bang naming convention that makes side-effect boundaries syntactically visible at every call site. The language distinguishes itself through a platform-based I/O abstraction tha
Marks effectful functions with a trailing exclamation mark for syntactic visibility of side-effect boundaries.
re-frame هو إطار عمل وظيفي لبناء تطبيقات الصفحة الواحدة (SPA) باستخدام ClojureScript. يوفر قاعدة بيانات مركزية غير قابلة للتغيير تعمل كمصدر وحيد للحقيقة لحالة التطبيق بالكامل، مما يفرض تدفق بيانات أحادي الاتجاه صارم حيث تؤدي الأحداث إلى تغييرات في الحالة وتحديثات لاحقة للعرض. يتميز إطار العمل برسم بياني تفاعلي للإشارات وخط أنابيب (pipeline) وسيط يعتمد على المعترضات (interceptors). من خلال التعامل مع منطق التطبيق كسلسلة من الأحداث القائمة على البيانات والآثار الجانبية التصريحية، فإنه يفصل منطق الأعمال عن طبقة العرض. تسمح هذه البنية للمطورين بإدارة تغييرات الحالة المعقدة والعمليات الخارجية من خلال دوال نقية، مما يضمن تنفيذ الآثار الجانبية بواسطة مترجم منفصل بدلاً من الاستدعاءات الإلزامية. يتضمن النظام مجموعة شاملة من الإمكانيات لإدارة بنية التطبيق، بما في ذلك اشتقاق البيانات التفاعلي، ومطابقة العرض القائمة على الاشتراكات، وإدارة الحالة القائمة على الأحداث. يدعم سير عمل التطوير المتقدم مثل تتبع الأحداث، وحفظ نقاط فحص الحالة، والقدرة على محاكاة الآثار الجانبية للاختبار المعزول. تم تصميم المشروع للتكامل مع React، مستفيداً من مطابقة DOM الافتراضي لتحديث واجهات المستخدم بكفاءة. يوفر مجموعة قوية من الأدوات للتعامل مع الاهتمامات المتقاطعة، وإدارة رسوم بيانية معقدة لتدفق البيانات، وتنسيق العمليات غير المتزامنة ضمن خط أنابيب أحداث متسلسل وقابل للتنبؤ.
Performs mutations on application state or external systems through a controlled, auditable, and mockable execution layer.
Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer
Wraps non-deterministic operations like API calls or AI model requests in durable steps to ensure consistent execution across replays.
ZenML is an extensible machine learning orchestration framework designed to manage the end-to-end lifecycle of data pipelines and AI agent workflows. It functions as a durable orchestrator that executes machine learning tasks as directed acyclic graphs, ensuring that every step is containerized for consistent performance across local, cloud, and hybrid infrastructure. By decoupling pipeline code from underlying compute and storage backends, the platform allows developers to define infrastructure-agnostic stacks that remain portable across diverse environments. The project distinguishes itself
Wraps workflow invocations in persistent boundaries to allow replaying failed processes without re-executing completed steps.
Easy-peasy هي مكتبة لإدارة حالة React وإطار عمل مكتوب (Typed) يوفر مخزناً مركزياً لإدارة حالة التطبيق العالمية. تعمل كمخزن حالة غير قابل للتغيير ومنظم حالة غير متزامن، مما يضمن سلامة النوع من البداية إلى النهاية لتعريفات الحالة، والإجراءات، والقيم المشتقة. تتميز المكتبة بتحويل بناء جملة التغيير المباشر إلى تحديثات غير قابلة للتغيير لتبسيط إدارة البيانات المتداخلة. تتضمن آلية لحفظ شجرة الحالة في التخزين وإعادة ترطيبها أثناء عملية تمهيد التطبيق، مع القدرة على تعليق واجهة المستخدم حتى اكتمال إعادة الترطيب. يغطي إطار العمل العديد من مجالات القدرات، بما في ذلك تنظيم استدعاءات API غير المتزامنة مع العرض المتفائل وحساب الحالة المشتقة المخزنة مؤقتاً. كما يوفر أدوات لإدارة التحديثات غير العاجلة والوصول إلى المخزن خارج مكونات React.
Encapsulates asynchronous logic and side effects in functions that update the central state store.
Effector is a reactive state management library designed for building complex, event-driven applications. It functions as a data flow engine that models application logic as a directed acyclic graph, ensuring that state updates propagate automatically through interconnected nodes. By utilizing atomic state updates and declarative unit composition, the library maintains data consistency and provides a predictable execution model for managing application state. The project distinguishes itself through its framework-agnostic architecture, which decouples business logic from user interface implem
Encapsulates external operations into discrete units that track lifecycle and execution status.
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
Encapsulates asynchronous operations and external interactions into discrete, pure-value units that trigger state changes upon completion.
Returns هي مكتبة برمجة وظيفية لـ Python توفر حاويات آمنة من حيث النوع لإدارة الحالة، ومعالجة الأخطاء، والاختيارية. تعمل كمكتبة حاويات مونادية (monadic) وإطار عمل لمعالجة الأخطاء آمن من حيث النوع، حيث تستبدل كتل try-catch التقليدية وفحوصات null بحاويات Result و Optional لمعاملة الاستثناءات كبيانات. يتميز المشروع باستخدامه لمكون إضافي متخصص للتحليل الثابت Mypy للتحقق من خطوط الأنابيب الوظيفية ومحاكاة الأنواع ذات الرتب الأعلى. يوفر آليات لعزل الآثار الجانبية من خلال حاويات IO ويقدم إطار عمل لحقن التبعية الآمن من حيث النوع الذي يؤجل توفير التبعيات حتى التنفيذ النهائي للحساب. تغطي المكتبة نطاقاً واسعاً من البدائيات الوظيفية، بما في ذلك التجزئة (currying)، والتطبيق الجزئي، وتكوين خطوط أنابيب البيانات التصريحية. تدعم إدارة سير العمل غير المتزامن عن طريق تغليف الـ coroutines في حاويات لسلسلة العمليات غير المحظورة وتتضمن أدوات مساعدة لإدارة دورة حياة الموارد والتحقق من القوانين الجبرية للحاويات المخصصة.
Represents side effects as pure values in containers to separate the definition of an impure operation from its execution.
This project is a reactive state management library designed for Angular applications. It provides a centralized store that maintains a single immutable source of truth, ensuring that all application data transitions follow a predictable, unidirectional flow. The library implements the Redux pattern, utilizing discrete actions and pure functions to trigger state updates. It leverages observable streams to propagate these changes, allowing user interface components to bind reactively to specific slices of data. By isolating asynchronous operations and external interactions into independent act
Isolates external API calls and background tasks into independent streams to maintain clean and testable business logic.
MoreLINQ is a functional programming toolkit and extension library for .NET that augments LINQ to Objects with advanced operators for sequence manipulation and analysis. It provides a set of tools for declarative data transformation, leveraging lazy evaluation and composition to handle complex object sequences. The library is distinguished by its specialized capabilities for combinatorial generation, including the production of permutations, subsets, and Cartesian products. It also provides advanced sequence joining options, such as full, left, and right outer joins, and supports complex data
Allows interjecting non-transformative actions like logging or tracing into a sequence without altering the data flow.
Reactor is a reactive streams library and framework for building asynchronous data pipelines. It provides a system for coordinating execution contexts via an asynchronous event-loop manager, alongside a set of reactive abstractions for implementing high-performance TCP, UDP, QUIC, and HTTP services. The project includes a specialized testing tool for verifying the timing and order of asynchronous data flows and a bill of materials to synchronize compatible versions of core reactive libraries and networking add-ons. Its capability surface covers non-blocking network services, demand-based bac
Executes logging, tracing, or piping operations during sequence traversal without modifying the underlying data.
This project is a comprehensive learning resource and technical reference for reactive programming with RxJS. It provides a structured curriculum, curated examples, and an indexed operator catalog to help developers shift from imperative to declarative programming using observable data streams and functional operators. The repository features a library of reactive UI patterns and implementation recipes. These cover practical applications such as type-ahead search, game loops, gesture-based interactions like swipe-to-refresh, and security overlays like lockscreens. The resource covers a broad
RxJS capability to perform specific actions during value emission without modifying the stream or affecting downstream subscribers.