Skip to content

oaiiae/sync-generic

Repository files navigation

Sync-Generic

A Go package providing generic wrappers around standard library synchronization primitives.

  • Type safety at compile time
  • No need for type assertions in your code
  • Full API compatibility with standard library

Features

  • Pool[T] - Type-safe generic wrapper for sync.Pool
  • Map[K, V] - Type-safe generic wrapper for sync.Map

Usage

// Pool example
func _() {
	pool := new(sync.Pool[[]byte]).New(func() []byte { return make([]byte, 1024) })
	buffer := pool.Get()
	defer pool.Put(buffer)
	// use buffer
}
// Map example
func _() {
	cache := new(sync.Map[string, int])
	value, ok := cache.LoadOrStore("count", 42)
}

About

Generic wrappers for Go's sync package

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages