A powerful language-integrated query (LINQ) library for Go. Written in vanilla Go, no dependencies! Complete lazy evaluation with iterator pattern. Safe for concurrent use. Supports generic functions to make your code cleaner and free of type assertions. Supports arrays, slices, maps, strings, channels and custom collections. go-linq has recently introduced breaking API changes with v2.0.0. See release notes for details. v2.0.0 comes with a refined interface, dramatically increased performance and memory efficiency, and new features such as lazy evaluation. Although Go doesn't implement generics, with some reflection tricks, you can use go-linq without typing interface{}s and type assertions. This will introduce a performance penalty (5x-10x slower) but will yield in a cleaner and more readable code.
Features
- Written in vanilla Go, no dependencies!
- Complete lazy evaluation with iterator pattern
- Supports arrays, slices, maps, strings, channels and custom collections
- Supports generic functions to make your code cleaner and free of type assertions
- Safe for concurrent use
- Library for Go