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

sourcegraph/conc

0
View on GitHub↗
10,307 stars·354 forks·Go·mit·31 viewsabout.sourcegraph.com/blog/building-conc-better-structured-concurrency-for-go↗

Conc

conc is a Go concurrency library and structured concurrency framework providing primitives for managing parallel tasks, mapping slices, and collecting results. It implements a system for spawning scoped tasks to ensure all child processes complete before their parent exits.

The library includes a goroutine pool manager to limit active concurrent processes and a panic-safe task runner that catches panics in goroutines and propagates stack traces to the parent. It also provides a concurrent map-reduce tool for transforming data slices and processing streams in parallel while maintaining the original order of results.

The project covers broad concurrency capabilities, including parallel data processing, resource-limited task execution, and structured error handling for capturing and propagating failures from parallel processes.

Features

  • Concurrency Libraries - Implements a comprehensive set of Go primitives for managing parallel tasks and collecting results.
  • Scoped Task Synchronization - Implements a structured concurrency framework ensuring all child work completes before the parent exits to prevent resource leaks.
  • Parallel Mappers - Transforms each element of a list using a function executed across multiple parallel processes.
  • Parallel Data Iterators - Splits data collections into individual units of work for concurrent processing across multiple Go routines.
  • Parallel Data Transformation - Transforms or iterates over large slices of data using multiple processes to improve performance.
  • Parallel Map-Reduce Tools - Provides a concurrent map-reduce tool for transforming data slices and processing streams in parallel.
  • Go Concurrency Utilities - Provides a specialized set of primitives for managing Go routines with scoped ownership and resource safety.
  • Structured Concurrency Managers - Provides a structured concurrency framework for spawning scoped tasks that ensures all child processes complete before the parent exits.
  • Goroutine Pools - Provides a goroutine pool manager to limit active concurrent processes and prevent system resource exhaustion.
  • Concurrent Task Runners - Runs multiple functions in parallel and gathers their results or errors into a single collection.
  • Concurrent Task Limiters - Controls resource consumption by executing concurrent tasks using a fixed maximum number of processes.
  • Panic Propagation - Captures failures in scoped processes and sends them to the parent to preserve debugging stack traces.
  • Parallel Task Spawning - Runs a collection of functions concurrently and aggregates results into a single data structure.
  • Panic Recovery - Captures runtime panics in child goroutines and re-throws them in the parent to preserve original stack traces.
  • Stream Processing - Performs asynchronous operations on data streams in parallel while maintaining the original sequence of results.
  • Concurrent Data Collection - Gathers return values and errors from multiple parallel tasks into a single unified collection.
  • Thread-Safe Communication Channels - Implements thread-safe communication channels to aggregate results and errors from parallel processes into a shared slice.
  • Synchronization Primitives - Utilizes synchronization primitives to block parent processes until all spawned child tasks have completed.
  • Error Handling - Captures panics and errors from parallel processes and propagates them to a parent for debugging.
  • Result Sequencers - Ensures that parallel outputs are returned in their original input sequence by tracking indices.
  • Concurrent - Includes a panic-safe task runner that catches goroutine panics and propagates stack traces to the parent.
  • Task Scheduling and Queues - Structured concurrency control.
  • Concurrency Management - Provides structured concurrency tools for safer task execution.
  • Concurrency Tools - Listed in the “Concurrency Tools” section of the Awesome Go awesome list.

Star history

Star history chart for sourcegraph/concStar history chart for sourcegraph/conc

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

Frequently asked questions

What does sourcegraph/conc do?

conc is a Go concurrency library and structured concurrency framework providing primitives for managing parallel tasks, mapping slices, and collecting results. It implements a system for spawning scoped tasks to ensure all child processes complete before their parent exits.

What are the main features of sourcegraph/conc?

The main features of sourcegraph/conc are: Concurrency Libraries, Scoped Task Synchronization, Parallel Mappers, Parallel Data Iterators, Parallel Data Transformation, Parallel Map-Reduce Tools, Go Concurrency Utilities, Structured Concurrency Managers.

Which projects share features with sourcegraph/conc?

Projects with overlapping indexed features include: panjf2000/ants — Ants is a goroutine pool library for Go that functions as a concurrent task orchestrator and resource consumption… rayon-rs/rayon — Rayon is a data parallelism library for Rust that provides a framework for converting sequential computations into… jeffail/tunny — Tunny is a worker pool library and concurrency manager for Go. It functions as a concurrent task scheduler that limits… python-trio/trio — Trio is an asynchronous I/O runtime and concurrency library for Python. It provides a system for executing… ruby-concurrency/concurrent-ruby — Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data… geektutu/high-performance-go — This project is a comprehensive performance programming guide and reference for the Go language, focusing on runtime…

Projects sharing features with Conc

These projects share indexed features with Conc. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • panjf2000/antspanjf2000 avatar

    panjf2000/ants

    14,436View on GitHub↗

    Ants is a goroutine pool library for Go that functions as a concurrent task orchestrator and resource consumption limiter. Its primary purpose is to manage and reuse a pool of goroutines to limit concurrency and reduce the memory allocation overhead associated with frequent thread creation. The system provides a runtime worker manager capable of adjusting pool capacity dynamically to respond to fluctuating workloads. To maintain stability, it includes panic recovery mechanisms that intercept runtime failures within worker threads to prevent a single failing task from crashing the entire appli

    Goantsgogoroutine
    View on GitHub↗14,436
  • rayon-rs/rayonrayon-rs avatar

    rayon-rs/rayon

    13,071View on GitHub↗

    Rayon is a data parallelism library for Rust that provides a framework for converting sequential computations into parallel operations. It enables the transformation of standard data structures and loops into parallel iterators, allowing workloads to be distributed across multiple processor cores. By utilizing a work-stealing scheduler, the library dynamically balances tasks to maximize throughput and minimize execution time. The library distinguishes itself through its focus on safe, scoped task synchronization, which ensures that all spawned operations complete before a scope exits to preve

    Rust
    View on GitHub↗13,071
  • jeffail/tunnyJeffail avatar

    Jeffail/tunny

    4,033View on GitHub↗

    Tunny is a worker pool library and concurrency manager for Go. It functions as a concurrent task scheduler that limits the number of parallel workers processing jobs to prevent system resource exhaustion. The project enables the maintenance of persistent state within individual worker routines to avoid repeated initialization costs. It also supports dynamic worker scaling, allowing the number of active background workers to be adjusted in real time without interrupting tasks in progress. The library provides mechanisms for task timeout enforcement and worker lifecycle management, including t

    Gogogolanggoroutine-pool
    View on GitHub↗4,033
  • python-trio/triopython-trio avatar

    python-trio/trio

    7,280View on GitHub↗

    Trio is an asynchronous I/O runtime and concurrency library for Python. It provides a system for executing non-blocking network and disk operations through a centralized event loop and task scheduler. The library is built on a structured concurrency model, which ensures that asynchronous tasks are bound to a specific lifetime and cannot outlive the scope that started them. It utilizes a nursery-based task manager to track task lifecycles in a parent-child tree, preventing orphaned concurrent operations by requiring child tasks to be joined before their parent scope exits. The framework cover

    Pythonasyncasync-awaitio
    View on GitHub↗7,280
Compare all 30 related projects→