Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. async

async

MITGov0.10.0

A Go package providing synchronization primitives and asynchronous computation utilities beyond the standard library.

Visit WebsiteGitHubGitHub
309 stars15 forks0 contributors

What is async?

Async is a Go package that provides a comprehensive set of synchronization primitives and asynchronous computation utilities. It extends the standard library by offering additional concurrency patterns and data structures, such as thread-safe maps, futures, promises, and specialized locks, to simplify building concurrent applications in Go.

Target Audience

Go developers building concurrent applications who need advanced synchronization tools beyond what the standard library offers, such as thread-safe data structures, worker pools, and future/promise patterns.

Value Proposition

Developers choose Async for its idiomatic Go design, performance-focused implementations like sharded maps, and practical utilities that fill gaps in the standard library, making complex concurrency patterns more accessible and manageable.

Overview

Synchronization and asynchronous computation package for Go

Use Cases

Best For

  • Implementing thread-safe generic maps with sharding for high concurrency
  • Managing asynchronous task execution with worker pools and futures
  • Synchronizing goroutines with reusable barriers and context-aware wait groups
  • Building applications requiring reentrant or priority-based locking mechanisms
  • Handling lazy or deferred computations with Task and Future/Promise patterns
  • Extending Go's concurrency toolkit with atomic value storage and error-aware Once

Not Ideal For

  • Projects relying solely on basic goroutines and channels without advanced synchronization requirements
  • Distributed systems needing concurrency primitives across multiple machines or processes
  • Teams prioritizing minimal dependencies and adherence to Go's standard library only

Pros & Cons

Pros

Comprehensive Concurrency Toolkit

Offers a wide range of utilities like ConcurrentMap, ShardedMap, and Future/Promise, as detailed in the README, filling gaps in Go's standard library for complex patterns.

Performance-Optimized Data Structures

Includes ShardedMap which shards data across multiple synchronized maps to reduce lock contention and improve scalability in high-concurrency scenarios.

Idiomatic Go Integration

Designed to complement existing Go patterns, with features like WaitGroupContext adding context support for graceful unblocking, aligning with Go's concurrency philosophy.

Enhanced Error Handling

Provides Once with error handling support, allowing functions to return errors, unlike sync.Once, which improves robustness in asynchronous computations.

Cons

Limited Documentation Depth

The README primarily lists features and points to examples and test files for usage, lacking detailed API documentation that might require digging into source code.

Specialized Primitives Overhead

Utilities like ReentrantLock and PriorityLock are niche and may add unnecessary complexity for typical Go applications that don't require such advanced locking mechanisms.

Ecosystem and Support Concerns

As a third-party package, it has less community adoption and fewer integrations compared to standard library tools, which could impact long-term maintenance and troubleshooting.

Frequently Asked Questions

Quick Stats

Stars309
Forks15
Contributors0
Open Issues0
Last commit6 months ago
CreatedSince 2019

Tags

#async#data-structures#worker-pool#asynchronous#thread-safe#future#goroutines#generics#concurrency#go#promise#synchronization

Built With

G
Go

Links & Resources

Website

Included in

Go169.1k
Auto-fetched 5 hours ago

Related Projects

antsants

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

Stars14,468
Forks1,437
Last commit20 days ago
concconc

Better structured concurrency for go

Stars10,417
Forks359
Last commit20 days ago
tunnytunny

A goroutine pool for Go

Stars4,033
Forks309
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
Forks243
Last commit1 year 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