# samber/lo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/samber-lo).**

20,987 stars · 937 forks · Go · mit

## Links

- GitHub: https://github.com/samber/lo
- Homepage: https://lo.samber.dev
- awesome-repositories: https://awesome-repositories.com/repository/samber-lo.md

## Topics

`constraints` `contract` `filterable` `foldable` `functional` `generics` `go` `golang` `lodash` `programming` `typesafe`

## Description

Lo is a functional utility library for Go that provides a collection of tools for manipulating slices and maps. By leveraging language-level generics, the library enables developers to perform data transformations and collection operations while maintaining strict type safety and reducing boilerplate code.

The library distinguishes itself by offering specialized patterns for high-performance data handling. It includes utilities for in-place collection modification to minimize memory allocation overhead, as well as lazy iterator evaluation to process large or infinite data sequences incrementally. These features allow for memory-efficient traversal and deferred computation of complex datasets.

Beyond basic transformations, the library supports concurrent task execution through a worker-pool model. This allows for the distribution of computational workloads across multiple CPU cores to increase throughput during data processing. The project is distributed as a modular toolkit designed to integrate directly into Go applications.

## Tags

### Programming Languages & Runtimes

- [Functional Utility Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/functional-utility-libraries.md) — Provides a comprehensive functional utility library for Go that simplifies collection manipulation and data transformation.
- [Goroutine Pools](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/task-orchestration-frameworks/thread-pools/goroutine-pools.md) — Supports concurrent task execution through a worker-pool model to maximize CPU utilization during data processing.
- [Type Safety](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-safety.md) — Enforces data integrity and type safety across collection operations using Go generics.

### Data & Databases

- [Lazy Iterator Libraries](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/batch-processing-systems/data-iterators/lazy-iterators/lazy-iterator-libraries.md) — Provides a set of utilities for processing large or infinite data sequences incrementally to minimize memory usage.
- [Lazy Iterators](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/batch-processing-systems/data-iterators/lazy-iterators.md) — Implements lazy iterators to process large or infinite data sequences incrementally with minimal memory usage.
- [Data Transformation](https://awesome-repositories.com/f/data-databases/data-transformation.md) — Enables complex data collection transformations using functional patterns and strict type checking. ([source](https://lo.samber.dev/docs/about))
- [In-Place Data Modifiers](https://awesome-repositories.com/f/data-databases/in-place-data-modifiers.md) — Offers specialized utilities for modifying data structures in-place to minimize memory allocation overhead.

### Software Engineering & Architecture

- [Generics-Based Processors](https://awesome-repositories.com/f/software-engineering-architecture/abstract-data-types/generic-data-abstractions/generics-based-processors.md) — Acts as a toolkit for transforming and iterating over data structures using type-safe functional patterns.
- [Functional Programming](https://awesome-repositories.com/f/software-engineering-architecture/functional-programming.md) — Provides a comprehensive suite of functional programming utilities for declarative data transformation and composition in Go.
- [Functional Data Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/design-patterns/functional-design-patterns/functional-data-pipelines.md) — Implements functional data pipelines for manipulating slices and maps with reduced boilerplate.
- [Concurrent Task Runners](https://awesome-repositories.com/f/software-engineering-architecture/concurrent-task-runners.md) — Manages concurrent task execution across multiple CPU cores to increase throughput. ([source](https://lo.samber.dev/docs/about))
- [Task Execution Engines](https://awesome-repositories.com/f/software-engineering-architecture/task-execution-engines.md) — Provides architectural patterns for executing background tasks using worker pools.

### Repository Format

- [Awesome List](https://awesome-repositories.com/f/repository-format/awesome-list.md) — A community-curated directory that catalogs and links out to other open-source projects, rather than a standalone tool you run yourself.

### Education & Learning Resources

- [Memory-Efficient Algorithms](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/technical-academic-domains/algorithmic-design-analysis/algorithms-and-design-patterns/memory-efficient-algorithms.md) — Optimizes memory access patterns during the traversal of complex datasets.
