awesome-repositories.com
Blog
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectDespreCum realizăm clasamentulPresăServer MCP
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
sourcegraph avatar

sourcegraph/conc

0
View on GitHub↗
10,307 stele·354 fork-uri·Go·mit·5 vizualizăriabout.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.

Istoric stele

Graficul istoricului de stele pentru sourcegraph/concGraficul istoricului de stele pentru sourcegraph/conc

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Alternative open-source pentru Conc

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu Conc.
  • panjf2000/antsAvatar panjf2000

    panjf2000/ants

    14,436Vezi pe 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
    Vezi pe GitHub↗14,436
  • rayon-rs/rayonAvatar rayon-rs

    rayon-rs/rayon

    13,071Vezi pe 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
    Vezi pe GitHub↗13,071
  • jeffail/tunnyAvatar Jeffail

    Jeffail/tunny

    4,033Vezi pe 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
    Vezi pe GitHub↗4,033
  • python-trio/trioAvatar python-trio

    python-trio/trio

    7,280Vezi pe 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
    Vezi pe GitHub↗7,280
Vezi toate cele 30 alternative pentru Conc→

Întrebări frecvente

Ce face 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.

Care sunt principalele funcționalități ale sourcegraph/conc?

Principalele funcționalități ale sourcegraph/conc sunt: Concurrency Libraries, Scoped Task Synchronization, Parallel Mappers, Parallel Data Iterators, Parallel Data Transformation, Parallel Map-Reduce Tools, Go Concurrency Utilities, Structured Concurrency Managers.

Care sunt câteva alternative open-source pentru sourcegraph/conc?

Alternativele open-source pentru sourcegraph/conc includ: 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…