awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
arrow-kt avatar

arrow-kt/arrow

0
View on GitHub↗
6,558 stars·471 forks·Kotlin·12 viewsarrow-kt.io↗

Arrow

Arrow is a functional programming library for Kotlin that provides tools for implementing data-oriented programming patterns. It serves as a framework for typed error handling, a concurrency toolkit, and a library for the manipulation of immutable data.

The project distinguishes itself through specialized capabilities for managing application failures using explicit types instead of exceptions and implementing resilience patterns such as circuit breakers and retry policies for distributed services. It also provides optics to update and query deeply nested immutable data structures without manual copy operations.

The library covers a broad surface of functional capabilities, including structured concurrency orchestration, software transactional memory for shared state, and resource lifecycle management. It further provides utilities for function composition, error accumulation for validation, and stack-safe recursion.

Features

  • Immutable Nested Data Manipulation - Provides optics for updating and querying deeply nested immutable data structures without manual copying.
  • Functional Programming Patterns - Implements functional programming paradigms and abstractions specifically for the Kotlin language.
  • Monadic Error Handling - Provides a framework for managing failures using typed container types like Either and Option instead of exceptions.
  • Asynchronous Collection Processing - Provides functional utilities to make data transformations and collection processing more expressive.
  • Functional Domain Modeling - Enables the creation of domain models using functional programming and algebraic derivations.
  • Functional Programming Libraries - Provides functional programming primitives and abstractions designed for the Kotlin language.
  • Kotlin Concurrency Toolkits - Provides a comprehensive toolkit for managing parallel computations and shared state in Kotlin.
  • Structured Concurrency - Provides mechanisms to ensure child computations are automatically terminated when their parent scope completes or fails.
  • Structured Concurrency Managers - Manages task lifecycles and cancellation through hierarchical scopes using structured concurrency patterns.
  • Functional Design Patterns - Provides architectural patterns for building systems using pure functions and isolated logic.
  • Collection Transformations - Extends standard collections with functional transformation utilities like map, filter, and reduce.
  • Circuit Breakers - Implements circuit breaker patterns to prevent cascading failures by pausing requests to unhealthy services.
  • Error Accumulators - Provides mechanisms to collect multiple validation or processing errors instead of failing on the first encounter.
  • Expected Error Handling - Manages anticipated domain failures using typed error channels to ensure predictable recovery.
  • Validation Error Aggregators - Ships utilities that aggregate multiple validation failures into a single structured collection for better feedback.
  • Success and Failure Wrapping - Implements the pattern of wrapping operational outcomes in types that explicitly signal success or failure.
  • Functional Optics - Implements composable lenses and prisms for querying and transforming deeply nested immutable data structures.
  • Immutable Data Patterns - Implements architectural patterns that prioritize data integrity through immutable data models.
  • Function Combinators - Provides higher-order function combinators to create complex logic through partial application and currying.
  • Parallel Task Execution - Executes multiple asynchronous computations simultaneously and aggregates their results to improve performance.
  • Retry Policies - Provides configurable retry policies with backoff strategies to handle transient failures in external services.
  • Resilience Retry Patterns - Implements circuit breakers, retries, and fallback strategies to prevent cascading failures.
  • Service Overload Protections - Ships active resilience patterns like circuit breakers and rate limiting to protect services from overload.
  • Error Handling - Defines potential failure types within function signatures to ensure errors are handled at compile time.
  • Typed Error Management - Provides a holistic system for catching and transforming errors using type-safe mechanisms.
  • Stack-Safe Recursion - Implements trampolined recursion to ensure stack safety during deep recursive calls.
  • Task Racing - Executes multiple asynchronous operations simultaneously and resolves based on the first successful completion.
  • Parallel Action Racing - Executes multiple concurrent operations and returns the result of the first one to complete.
  • Monadic Action Retry - Wraps monadic actions in retry mechanisms to automatically handle intermittent execution failures.
  • Resilient Async Computations - Repeats failing asynchronous operations according to defined schedules to improve system reliability.
  • Asynchronous Resource Management - Implements patterns for the safe allocation and disposal of asynchronous resources to prevent memory leaks.
  • Concurrent State Coordination - Provides primitives for synchronizing shared mutable state across concurrent execution units.
  • Transactional State Protectors - Protects blocks of execution sharing state across concurrent computations with support for rolling back failed operations.
  • Distributed Transaction Managers - Supports modeling complex distributed operations as sagas with automated compensation logic.
  • Domain Model Implementations - Provides specialized generic data types to represent domain logic and business rules for increased type safety.
  • Failure Recovery Strategies - Provides capabilities to transform failed computations into successful ones or supply fallback values.
  • Event Sourcing - Provides architectural support for modeling domain state as an immutable sequence of events.
  • Error Accumulating Applicatives - Implements applicative functors that collect multiple validation errors instead of short-circuiting on the first failure.
  • Immutable State Transactions - Updates application state using discrete, immutable transactions to ensure consistency and undoability.
  • Resilient Architecture - Implements design principles for building robust and fault-tolerant systems using resilience patterns.
  • Resource Acquisition and Release - Ensures asynchronous resources are safely acquired and released in a strict linear sequence regardless of outcome.
  • Resource Lifecycle Management - Implements mechanisms to guarantee resource acquisition and release via finalizers and scopes.
  • Resource Lifecycle Managers - Tracks the acquisition and release of external resources across asynchronous boundaries.
  • Compositional Side Effect Management - Implements a composable style for coordinating sequences of behaviors, reducing reliance on dependency injection.
  • Software Transactional Memory - Implements a concurrency control mechanism for executing sets of memory operations as single atomic transactions.

Star history

Star history chart for arrow-kt/arrowStar history chart for arrow-kt/arrow

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Arrow

These projects share indexed features with Arrow. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • gcanti/fp-tsgcanti avatar

    gcanti/fp-ts

    11,523View on GitHub↗

    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

    TypeScriptalgebraic-data-typesfunctional-programmingtypescript
    View on GitHub↗11,523
  • zio/ziozio avatar

    zio/zio

    4,347View on GitHub↗

    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

    Scalaasynchronicityasynchronousasynchronous-programming
    View on GitHub↗4,347
  • dry-python/returnsdry-python avatar

    dry-python/returns

    4,310View on GitHub↗

    Returns is a functional programming library for Python that provides type-safe containers for managing state, error handling, and optionality. It serves as a monadic container library and a type-safe error handling framework, replacing traditional try-catch blocks and null checks with Result and Optional containers to treat exceptions as data. The project is distinguished by its use of a specialized Mypy static analysis plugin to validate functional pipelines and emulate higher kinded types. It provides mechanisms for isolating side effects through IO containers and offers a framework for typ

    Python
    View on GitHub↗4,310
  • typelevel/catstypelevel avatar

    typelevel/cats

    5,447View on GitHub↗

    Cats is a Scala functional programming library and type class library designed to implement algebraic patterns and functional abstractions. It provides a standardized set of interfaces and a modular toolkit of functional wrappers and containers to enable ad-hoc polymorphism and generic programming across disparate types. The project serves as a functional abstraction standard, offering a monad transformer suite to compose nested effectful contexts and handle multiple computational side effects within a single pipeline. It further enables the construction of embedded domain-specific languages

    Scala
    View on GitHub↗5,447
Compare all 30 related projects→

Frequently asked questions

What does arrow-kt/arrow do?

Arrow is a functional programming library for Kotlin that provides tools for implementing data-oriented programming patterns. It serves as a framework for typed error handling, a concurrency toolkit, and a library for the manipulation of immutable data.

What are the main features of arrow-kt/arrow?

The main features of arrow-kt/arrow are: Immutable Nested Data Manipulation, Functional Programming Patterns, Monadic Error Handling, Asynchronous Collection Processing, Functional Domain Modeling, Functional Programming Libraries, Kotlin Concurrency Toolkits, Structured Concurrency.

Which projects share features with arrow-kt/arrow?

Projects with overlapping indexed features include: gcanti/fp-ts — fp-ts is a TypeScript library that brings pure functional programming patterns to the language through algebraic data… zio/zio — ZIO is a functional effect system for the JVM that models asynchronous and concurrent programs as pure, composable… dry-python/returns — Returns is a functional programming library for Python that provides type-safe containers for managing state, error… typelevel/cats — Cats is a Scala functional programming library and type class library designed to implement algebraic patterns and… vkhorikov/csharpfunctionalextensions — CSharpFunctionalExtensions is a functional programming library for C# that provides a framework of monadic containers,… supermacro/neverthrow — neverthrow is a TypeScript result type library that implements railway oriented programming. It provides a functional…