Turbo is a blazing-fast, autoscaling worker pool library for Go, crafted with concurrency and simplicity in mind. It provides a minimal API for efficient goroutine scheduling and safe concurrent task execution.
⚠️ Note: Turbo is currently in early-phase development and not yet production-ready. Contributions and feedback are welcome!
- 🔥 Minimal API – Designed for ease of use with just what you need
- ⚙️ Efficient goroutine scheduling – Manages workers smartly for performance
- 🔒 Safe concurrency – Submit and execute tasks safely in parallel
- 📚 Library-first design – Turbo is a Go library, not an executable
- 📊 Priority queueing (planned) – Execute high-priority tasks first
- 🌊 Draining & pause capabilities (planned) – Gracefully halt or resume task execution
- 🧠 Autoscaling (planned) – Scale worker count based on demand
Install the latest version using:
go get github.com/symonk/turbo@v0.1.0
💡 Replace
v0.1.0
with the latest version tag from the Releases page if a newer one is available.
package main
import (
"fmt"
"github.com/symonk/turbo"
)
func main() {
// Create a new worker pool with 4 workers
p := turbo.NewPool(4)
defer p.Close()
// Submit a task to the pool
p.Submit(func() {
fmt.Println("Hello from Turbo!")
})
}
➡️ Check out the examples/basic folder for more usage patterns.
Contributions are welcome! To contribute:
- 🍴 Fork the repository
- 🌿 Create a branch:
git checkout -b feature/your-feature-name
- 🛠️ Make your changes
- ✅ Run the test suite:
go test ./...
- 💬 Commit your changes:
git commit -m 'Add your feature'
- 🚀 Push the branch:
git push origin feature/your-feature-name
- 📬 Open a pull request