Repository navigation
v1.0.0 — Core Stable Production Release
Release Notes: v1.0.0 — Bounded Scaling, Panic Shielding & Zero-Friction Closure Adapters 🏎️
We are thrilled to announce the official production-ready stable release v1.0.0 of concur!
concur is a lightweight, type-safe Go library implementing an enterprise-grade Fan-Out / Fan-In concurrency pipeline using Go Generics. It distributes heavy workloads across a controlled pool of parallel workers and multiplexes their results back into a single fanned-in stream, completely preventing unbounded goroutine leaks, data races, and out-of-memory crashes.
🔥 Major Architectural Enhancements
1. Zero-Friction Closure Adapters (All 12 Signatures Supported)
We redesigned the core concur.Process API signature to utilize Go's implicit native type-inference engine. You never need to write messy bracketed types like concur.Process[int, string](...). By passing a standard Go anonymous closure at the call-site, you can wrap all 12 possible variations of worker signatures (with/without context, with/without errors, with/without item inputs) effortlessly.
2. Automated Panic Recovery Guardrails 🛡️
Unexpected runtime crashes inside your application workloads will no longer take down your entire system infrastructure. concur handles executions inside isolated anonymous functions wrapped with recovery blocks. If a worker panics, the payload is safely intercepted, converted into a standard Go error structure (worker panicked: <reason>), and streamed cleanly into your results queue.
3. Deadlock-Protected Core Channel Buffering
The internal engine has been hardened against race conditions and deadlocks by strategically matching the output channel size to the requested concurrency pool size (opts.Workers). When StopOnError: true is toggled, exiting workers drop their error payload and exit instantly without getting permanently blocked by unread down-stream consumers.
📂 Step-by-Step Educational Path
We have completely overhauled the project's layout to provide structured, numeric-ordered example directories for clean onboarding:
examples/01_basic/: Simple parallel operations (Squaring integers).examples/02_variations/: A syntax matrix and cheat-sheet showing how to wrap all 12 closure patterns.examples/03_advanced_pipeline/: An enterprise-grade, multi-stage, leak-proof streaming pipeline architecture where Stage 1 directly bridges its data feeds safely into Stage 2.
⚙️ Automation & Hardened Testing
- Built a Table-Driven Test Matrix inside
concur_test.gocovering edge cases, worker limits, fallback configurations, and panic catching. - Added Automated GitHub Actions CI verification (
.github/workflows/go.yml) running full unit tests with Go’s native data race detector (-race) on every commit.
📦 Installation
go get github.com/jigneshsatam/concurThank you to all who contributed to hardening and designing this pipeline for production ecosystems! 🚀