{"id":15666991,"url":"https://github.com/jub0bs/iterutil","last_synced_at":"2025-05-01T14:33:12.352Z","repository":{"id":257155278,"uuid":"856943498","full_name":"jub0bs/iterutil","owner":"jub0bs","description":"an experimental collection of utility functions (sources, combinators, sinks) for working with Go iterators","archived":false,"fork":false,"pushed_at":"2024-10-03T08:41:31.000Z","size":83,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-03T14:05:12.587Z","etag":null,"topics":["combinators","functional-programming","functions","generics","generics-in-golang","go","golang","iterator"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/jub0bs/iterutil","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jub0bs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"jub0bs"}},"created_at":"2024-09-13T14:00:37.000Z","updated_at":"2024-10-03T08:38:40.000Z","dependencies_parsed_at":"2024-09-15T03:59:27.406Z","dependency_job_id":"5a692792-dc17-4d01-9038-80c1c4d4e1ba","html_url":"https://github.com/jub0bs/iterutil","commit_stats":null,"previous_names":["jub0bs/iterutil"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jub0bs%2Fiterutil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jub0bs%2Fiterutil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jub0bs%2Fiterutil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jub0bs%2Fiterutil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jub0bs","download_url":"https://codeload.github.com/jub0bs/iterutil/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224261919,"owners_count":17282267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["combinators","functional-programming","functions","generics","generics-in-golang","go","golang","iterator"],"created_at":"2024-10-03T14:01:29.772Z","updated_at":"2025-05-01T14:33:12.345Z","avatar_url":"https://github.com/jub0bs.png","language":"Go","readme":"# jub0bs/iterutil\n\n[![tag](https://img.shields.io/github/tag/jub0bs/iterutil.svg)](https://github.com/jub0bs/iterutil/tags)\n![Go Version](https://img.shields.io/badge/Go-%3E%3D%201.23-%23007d9c)\n[![Go Reference](https://pkg.go.dev/badge/github.com/jub0bs/iterutil.svg)](https://pkg.go.dev/github.com/jub0bs/iterutil)\n[![license](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat)](https://github.com/jub0bs/iterutil/raw/main/LICENSE)\n[![build](https://github.com/jub0bs/iterutil/actions/workflows/iterutil.yml/badge.svg)](https://github.com/jub0bs/iterutil/actions/workflows/iterutil.yml)\n[![codecov](https://codecov.io/gh/jub0bs/iterutil/branch/main/graph/badge.svg?token=N208BHWQTM)](https://app.codecov.io/gh/jub0bs/iterutil/tree/main)\n[![goreport](https://goreportcard.com/badge/jub0bs/iterutil)](https://goreportcard.com/report/jub0bs/iterutil)\n\nAn experimental collection of utility functions (sources, combinators, sinks)\nfor working with [Go][golang] [iterators].\n\n## Installation\n\n```shell\ngo get github.com/jub0bs/iterutil\n```\n\njub0bs/iterutil requires Go 1.23.2 or above.\n\n## Documentation\n\nThe documentation is available on [pkg.go.dev][pkgsite].\n\n## Code coverage\n\n![coverage](https://codecov.io/gh/jub0bs/iterutil/branch/main/graphs/sunburst.svg?token=N208BHWQTM)\n\n## License\n\nAll source code is covered by the [MIT License][license].\n\n## FAQ\n\n### What inspired this library?\n\n- [Haskell][haskell]'s [prelude][prelude]\n- the [slices][slices] and [maps][maps] packages\n- https://github.com/golang/go/issues/61898\n\n### Can I depend on this library?\n\nYou can, but at your own peril.\nAt this early stage, I reserve the right, upon new releases, to break the API:\nsome functions may see their names, signatures, and/or behaviors change,\nand some functions may be removed altogether.\n\nIf you need a few functions from this library but do not want to depend on it,\nfeel free to copy their sources in your project;\n[a little copying is better than a little dependency][copying].\n\n### How should I use this library?\n\nAbove all, use it with parsimony.\nChaining many combinators is far from ideal for several reasons:\n\n- code readability may suffer, in part\n  because Go's idiosyncracies hinder \"[fluent chaining][fluent]\" and\n  because Go lacks a concise notation for anonymous functions;\n- a more classic and imperative style is likely to prove more performant;\n- Go lacks the powerful [laziness][lazy] of [Haskell][haskell].\n\nBear in mind that the existence of this library is no license\nto overuse combinator chaining in your codebase!\n\n[copying]: https://www.youtube.com/watch?v=PAAkCSZUG1c\u0026t=568s\n[fluent]: https://en.wikipedia.org/wiki/Fluent_interface\n[golang]: https://go.dev/\n[haskell]: https://www.haskell.org/\n[iterators]: https://go.dev/blog/range-functions\n[lazy]: https://en.wikipedia.org/wiki/Lazy_evaluation\n[license]: https://github.com/jub0bs/iterutil/blob/main/LICENSE\n[maps]: https://pkg.go.dev/maps\n[pkgsite]: https://pkg.go.dev/github.com/jub0bs/iterutil\n[prelude]: https://downloads.haskell.org/ghc/9.8.2/docs/libraries/base-4.19.1.0-179c/Prelude.html\n[slices]: https://pkg.go.dev/slices\n","funding_links":["https://github.com/sponsors/jub0bs"],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjub0bs%2Fiterutil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjub0bs%2Fiterutil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjub0bs%2Fiterutil/lists"}