{"id":23261591,"url":"https://github.com/eopb/many-unzip","last_synced_at":"2025-08-20T18:31:19.775Z","repository":{"id":255402334,"uuid":"849445092","full_name":"eopb/many-unzip","owner":"eopb","description":"`multiunzip` from itertools but with support for larger than 12-tuples","archived":false,"fork":false,"pushed_at":"2024-08-30T11:29:51.000Z","size":20,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-17T04:16:30.200Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eopb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-29T15:54:09.000Z","updated_at":"2024-08-30T11:29:01.000Z","dependencies_parsed_at":"2024-08-29T20:17:53.229Z","dependency_job_id":null,"html_url":"https://github.com/eopb/many-unzip","commit_stats":null,"previous_names":["eopb/many-unzip"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eopb%2Fmany-unzip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eopb%2Fmany-unzip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eopb%2Fmany-unzip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eopb%2Fmany-unzip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eopb","download_url":"https://codeload.github.com/eopb/many-unzip/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230441687,"owners_count":18226428,"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":[],"created_at":"2024-12-19T13:33:40.779Z","updated_at":"2025-08-20T18:31:19.727Z","avatar_url":"https://github.com/eopb.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# many-unzip\n\n[![License](https://img.shields.io/crates/l/many-unzip.svg)](https://crates.io/crates/many-unzip)\n[![Latest version](https://img.shields.io/crates/v/many-unzip.svg)](https://crates.io/crates/many-unzip)\n[![Latest Docs](https://docs.rs/many-unzip/badge.svg)](https://docs.rs/many-unzip/)\n[![downloads-badge](https://img.shields.io/crates/d/many-unzip.svg)](https://crates.io/crates/many-unzip)\n\n[API docs](https://docs.rs/many-unzip/)\n\nLike [`Iterator::unzip`](https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.unzip) with the [`Extend` trait](https://doc.rust-lang.org/std/primitive.tuple.html#impl-Extend%3C(A,)%3E-for-(EA,)) ([since Rust 1.85](https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html#fromiterator-and-extend-for-tuples)) or [`itertools::multiunzip`](https://docs.rs/itertools/latest/itertools/fn.multiunzip.html), but without the 12 tuples limitation (up to 192 tuples).\n\nConverts an iterator of tuples into a tuple of containers, `many_unzip()` consumes an entire iterator of k-tuples tuples, producing `k` collections, one for each column.\n\nWith default features, `many_unzip` supports up to 24-tuples.\nLarger numbers can be enabled with feature flags, up to 192-tuples with the `192_tuple` feature.\n\nThis function is, in some sense, the opposite of [`itertools::multizip`](https://docs.rs/itertools/latest/itertools/fn.multizip.html).\n\n```rust\n# use many_unzip::many_unzip;\n\nlet inputs = vec![\n    (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13),\n    (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26),\n    (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39),\n];\n\nlet (a, b, c, d, e, f, g, h, i, j, k, l, m): (\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n    Vec\u003c_\u003e,\n) = many_unzip(inputs);\n\nassert_eq!(a, vec![1, 14, 27]);\nassert_eq!(b, vec![2, 15, 28]);\nassert_eq!(c, vec![3, 16, 29]);\nassert_eq!(d, vec![4, 17, 30]);\nassert_eq!(e, vec![5, 18, 31]);\nassert_eq!(f, vec![6, 19, 32]);\nassert_eq!(g, vec![7, 20, 33]);\nassert_eq!(h, vec![8, 21, 34]);\nassert_eq!(i, vec![9, 22, 35]);\nassert_eq!(j, vec![10, 23, 36]);\nassert_eq!(k, vec![11, 24, 37]);\nassert_eq!(l, vec![12, 25, 38]);\nassert_eq!(m, vec![13, 26, 39]);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feopb%2Fmany-unzip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feopb%2Fmany-unzip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feopb%2Fmany-unzip/lists"}