go-iterator VS iter

Compare go-iterator vs iter and see what are their differences.

go-iterator

Go 1.18 generics iterator experiment (by polyfloyd)

iter

Package iter provides generic, lazy iterators, functions for producing them from primitive types, as well as functions and methods for transforming and consuming them. (by mtoohey31)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
go-iterator iter
2 2
5 33
- -
0.0 5.2
over 1 year ago 3 months ago
Go Go
- BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

go-iterator

Posts with mentions or reviews of go-iterator. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-15.
  • 1.18 is released
    6 projects | /r/golang | 15 Mar 2022
    I already played around a bit wit the beta a while back and made an iterator library to get to know this new language. It's here for anyone interested: https://github.com/polyfloyd/go-iterator
  • iter: Generic, lazy iterators for Go 1.18
    6 projects | /r/golang | 10 Jan 2022
    Regarding call chaining, it is still possible to chain things with operations that return different types, but they have to be done with functions instead of methods, so the result is still the same, just it's a little less readable. There is a generic iterator implementation by polyfloyd that doesn't support method chaining, but imo being able to chain iterators is one of their biggest strengths, since implementing lazy evaluation manually for a single operation isn't that difficult, its when you need to perform multiple kinds of manipulations that it gets messy.

iter

Posts with mentions or reviews of iter. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-01-10.
  • iter: Generic, lazy iterators for Go 1.18
    6 projects | /r/golang | 10 Jan 2022
    The reason why I decided on the inner/outer architecture was because interface objects can't be used as recievers to methods (as far as I understand). As a result, my initial implementation, which didn't have this structure, was limited to functions instead of methods, which made code where iterator methods were chained extremely unreadable, since it was difficult to tell which order they were being applied in. It's a tradeoff, but I think the readability might be worth it. Do you have any ideas for alternative workarounds?

What are some alternatives?

When comparing go-iterator and iter you can also consider the following projects:

go - The Go programming language

iter - iter is a generic iterator library for Go

gtools - Generic tools for go 1.18+

go-generic - A collection of experiments using Go Generics coming out in Go 1.18

lo - 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

golangci-lint - Fast linters Runner for Go

gods - GoDS (Go Data Structures) - Sets, Lists, Stacks, Maps, Trees, Queues, and much more

client

Lazytainer - Docker container lazy loading