Skip to content

symonk/turbo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoDoc Build Status codecov Go Report Card License

⚡ Turbo

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!

🚀 Features

  • 🔥 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

📦 Installation

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.

⚡ Quick Start

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.

🤝 Contributing

Contributions are welcome! To contribute:

  1. 🍴 Fork the repository
  2. 🌿 Create a branch: git checkout -b feature/your-feature-name
  3. 🛠️ Make your changes
  4. ✅ Run the test suite: go test ./...
  5. 💬 Commit your changes: git commit -m 'Add your feature'
  6. 🚀 Push the branch: git push origin feature/your-feature-name
  7. 📬 Open a pull request

About

Autoscaling worker pool for golang

Resources

License

Stars

Watchers

Forks

Packages

No packages published