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)
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
go-iterator iter
2 2
5 34
- -
0.0 5.2
almost 3 years ago 11 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:

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

iter - iter is a generic iterator library for Go

go - The Go programming language

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

server

exp - Experimental packages not in std and golang.org/exp

Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured