Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. conc

conc

MITGov0.3.0

A Go library providing safer and easier structured concurrency with panic handling, goroutine management, and common concurrency patterns.

Visit WebsiteGitHubGitHub
10.4k stars366 forks0 contributors

What is conc?

Conc is a Go library designed to implement structured concurrency patterns, making it easier and safer to write concurrent code. It provides utilities like managed goroutine pools, panic recovery, and common concurrency operations such as parallel mapping and stream processing. The library addresses common pitfalls like goroutine leaks and unhandled panics in concurrent Go programs.

Target Audience

Go developers building concurrent applications who need robust goroutine management, error handling, and simplified concurrency patterns. It's particularly useful for those implementing task runners, parallel data processing, or any system requiring controlled concurrency.

Value Proposition

Developers choose Conc because it reduces boilerplate, prevents common concurrency bugs, and provides a clean API for complex patterns. Its built-in panic handling and scoped goroutine ownership offer safety advantages over standard library approaches, while utilities like pools and streams simplify concurrent code structure.

Overview

Better structured concurrency for go

Use Cases

Best For

  • Managing goroutine lifecycles and preventing leaks in long-running applications
  • Implementing concurrency-limited task runners for background jobs
  • Processing slices or streams in parallel with result collection
  • Handling panics gracefully in concurrent goroutines
  • Building ordered concurrent pipelines with serial callbacks
  • Simplifying error handling in concurrent task execution

Not Ideal For

  • Performance-critical systems where every nanosecond counts, as Conc's abstraction layers introduce overhead compared to raw goroutines.
  • Projects relying on unconventional concurrency models not covered by Conc's utilities, such as complex custom channel patterns or select statements.
  • Production environments requiring guaranteed API stability without breaking changes, given Conc's pre-1.0 status as noted in the README.

Pros & Cons

Pros

Safe Goroutine Management

Uses WaitGroup to ensure all goroutines are properly waited on, preventing leaks, as shown in the README comparison with stdlib where conc eliminates boilerplate.

Automatic Panic Handling

Catches panics in goroutines and propagates them with stack traces to the caller, making concurrent code more robust, evidenced by the panic handling examples that simplify error recovery.

Concurrency-Limited Pools

Provides pool.Pool and variants to bound goroutine counts for task execution, simplifying resource management without manual coordination.

Clean API for Patterns

Abstracts boilerplate for common operations like slice mapping and stream processing, reducing code complexity, as demonstrated in the examples comparing with verbose stdlib implementations.

Cons

Pre-1.0 Instability

The README admits the package is pre-1.0 with likely minor breaking changes before a stable release, posing a risk for production systems that require long-term stability.

Learning Curve for API

Developers must learn Conc's specific methods and patterns, which differ from standard Go concurrency, potentially slowing initial adoption despite the simplified boilerplate.

Dependency Overhead

Adds an external library dependency, which might be undesirable for projects aiming to minimize third-party packages or those with strict dependency policies.

Frequently Asked Questions

Quick Stats

Stars10,433
Forks366
Contributors0
Open Issues21
Last commit1 month ago
CreatedSince 2023

Tags

#go-library#goroutines#golang#structured-concurrency#concurrency#parallel-processing#panic-handling#go

Built With

G
Go

Links & Resources

Website

Included in

Go169.1k
Auto-fetched 1 day ago

Related Projects

antsants

🐜🐜🐜 ants is the most powerful and reliable pooling solution for Go.

Stars14,524
Forks1,441
Last commit1 month ago
tunnytunny

A goroutine pool for Go

Stars4,021
Forks305
Last commit3 years ago
goworkergoworker

goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers.

Stars2,847
Forks242
Last commit26 days ago
pondpond

🔘 Minimalistic and High-performance goroutine worker pool written in Go

Stars2,199
Forks91
Last commit5 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub