awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 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·5 vuesabout.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.

Historique des stars

Graphique de l'historique des stars pour sourcegraph/concGraphique de l'historique des stars pour sourcegraph/conc

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Conc

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Conc.
  • panjf2000/antsAvatar de panjf2000

    panjf2000/ants

    14,436Voir sur 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
    Voir sur GitHub↗14,436
  • rayon-rs/rayonAvatar de rayon-rs

    rayon-rs/rayon

    13,071Voir sur 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
    Voir sur GitHub↗13,071
  • jeffail/tunnyAvatar de Jeffail

    Jeffail/tunny

    4,033Voir sur 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
    Voir sur GitHub↗4,033
  • python-trio/trioAvatar de python-trio

    python-trio/trio

    7,280Voir sur 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
    Voir sur GitHub↗7,280
Voir les 30 alternatives à Conc→

Questions fréquentes

Que fait sourcegraph/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.

Quelles sont les fonctionnalités principales de sourcegraph/conc ?

Les fonctionnalités principales de sourcegraph/conc sont : Concurrency Libraries, Scoped Task Synchronization, Parallel Mappers, Parallel Data Iterators, Parallel Data Transformation, Parallel Map-Reduce Tools, Go Concurrency Utilities, Structured Concurrency Managers.

Quelles sont les alternatives open-source à sourcegraph/conc ?

Les alternatives open-source à sourcegraph/conc incluent : 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…