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
apple avatar

apple/swift-algorithms

0
View on GitHub↗
6,293 stars·473 forks·Swift·apache-2.0·23 views

Swift Algorithms

Swift Algorithms is a library of sequence and collection algorithms for Swift, providing operations for splitting, cycling, combining, and sampling collections with lazy evaluation. It extends Swift's standard library with algorithms that work across all types conforming to Sequence and Collection protocols, enabling efficient data processing without intermediate storage.

The library specializes in combinatorial enumeration, generating all possible permutations, combinations, and product sequences from collections for testing and exploration. It also includes utilities for splitting collections into groups based on element properties or transformations, creating infinite sequences by repeating collection elements, and selecting random subsets of unique elements without replacement.

Additional capabilities include chunking collections by predicate conditions, cycling over collection elements endlessly, and performing lazy sequence operations that compute elements on demand during iteration. The library is distributed as a Swift package, with documentation and source code available through the Swift Package Manager.

Features

  • Swift Collection Extensions - Provides a library of collection algorithms for splitting, cycling, combining, and sampling Swift collections.
  • Collection Combinatorics - Combinatorial operations that generate permutations, combinations, and product sequences from Swift collections.
  • Generic Monomorphisation - Provides compile-time specialization of generic algorithms for each concrete collection type.
  • Lazy Sequences - Implements lazy sequence operations that chain transformations without intermediate storage.

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
  • Combinatorial Generators - Generates all permutations and combinations of collection elements for combinatorial testing and exploration.
  • Generic Data Abstractions - Defines algorithms as protocol extensions on Sequence and Collection for reuse across all conforming types.
  • Generator-Based Iterators - Implements combinatorial algorithms as stateful iterators that yield elements one at a time.
  • Copy-On-Write Proxying - Implements copy-on-write value semantics for collection operations to ensure predictable performance.
  • Permutation Generation Algorithms - Generates all possible permutations and combinations of collection elements for combinatorial testing.
  • Collection Partitioning & Grouping - Provides chunking and grouping algorithms that partition collections by element properties or predicates.
  • Lazy Infinite Sequences - Repeats collection elements endlessly to create infinite sequences for continuous iteration.
  • Collection Cyclers - Ships a cycle algorithm that repeats collection elements to form an infinite sequence.
  • Collection Element Transformations - Provides predicate-based chunking to break collections into consecutive groups by matching properties.
  • Infinite Cycling - Provides algorithms for cycling over collection elements endlessly to create infinite sequences.
  • Predicate-Based Chunking - Ships algorithms for chunking collections by predicate conditions into consecutive groups.
  • Random Sampling - Selects random subsets of unique elements from collections without replacement for sampling.
  • Star history

    Star history chart for apple/swift-algorithmsStar history chart for apple/swift-algorithms

    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.

    Frequently asked questions

    What does apple/swift-algorithms do?

    Swift Algorithms is a library of sequence and collection algorithms for Swift, providing operations for splitting, cycling, combining, and sampling collections with lazy evaluation. It extends Swift's standard library with algorithms that work across all types conforming to Sequence and Collection protocols, enabling efficient data processing without intermediate storage.

    What are the main features of apple/swift-algorithms?

    The main features of apple/swift-algorithms are: Swift Collection Extensions, Collection Combinatorics, Generic Monomorphisation, Lazy Sequences, Combinatorial Generators, Generic Data Abstractions, Generator-Based Iterators, Copy-On-Write Proxying.

    Which projects share features with apple/swift-algorithms?

    Projects with overlapping indexed features include: more-itertools/more-itertools — more-itertools is an extension library for the Python itertools module. It serves as a toolkit for manipulating… ankurp/dollar — Dollar is a functional programming library for Swift that provides a comprehensive toolkit for collection… morelinq/morelinq — MoreLINQ is a functional programming toolkit and extension library for .NET that augments LINQ to Objects with… pytoolz/toolz — Toolz is a Python library that implements functional programming utilities for iterable transformation, dictionary… aimeos/map — This PHP data collection library is a functional data wrapper and array manipulation framework. It converts arrays,… azl397985856/leetcode — This project is a curated educational resource and solution repository for algorithmic challenges, specifically…

    Projects sharing features with Swift Algorithms

    These projects share indexed features with Swift Algorithms. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
    • more-itertools/more-itertoolsmore-itertools avatar

      more-itertools/more-itertools

      4,074View on GitHub↗

      more-itertools is an extension library for the Python itertools module. It serves as a toolkit for manipulating iterables, providing a wide range of routines for data transformation, combinatorial generation, and iterator state management. The library distinguishes itself through advanced state management and complex sequence generation. It provides capabilities for peeking at future elements, seeking within sequences, and producing unique permutations, combinations, and set partitions from collections that may contain duplicate elements. Its broader capability surface covers data processing

      Python
      View on GitHub↗4,074
    • ankurp/dollarankurp avatar

      ankurp/Dollar

      4,240View on GitHub↗

      Dollar is a functional programming library for Swift that provides a comprehensive toolkit for collection manipulation, string processing, mathematical calculations, and date and time management. It serves as a utility suite for filtering, aggregating, and restructuring arrays and dictionaries. The project implements functional programming patterns such as currying, memoization, and function composition. It also features a chainable wrapper interface that allows multiple data transformations to be applied sequentially before extracting a final result. The library covers a wide range of capab

      Swift
      View on GitHub↗4,240
    • morelinq/morelinqmorelinq avatar

      morelinq/MoreLINQ

      3,827View on GitHub↗

      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

      C#dotnetlinq
      View on GitHub↗3,827
    • aimeos/mapaimeos avatar

      aimeos/map

      4,200View on GitHub↗

      This PHP data collection library is a functional data wrapper and array manipulation framework. It converts arrays, JSON strings, and iterables into chainable collection objects designed for advanced filtering, sorting, and transformation. The library is distinguished by its ability to dynamically extend functionality through the registration of custom methods via closures. It also provides specialized capabilities for hierarchical data modeling, allowing flat datasets with parent-child identifiers to be reconstructed into nested tree structures. The toolkit covers a broad surface of data ma

      PHParraycollectionmap
      View on GitHub↗4,200
    Compare all 30 related projects→