{"id":17092733,"url":"https://github.com/ananthakumaran/zstream","last_synced_at":"2025-05-16T04:04:16.422Z","repository":{"id":38866159,"uuid":"110005520","full_name":"ananthakumaran/zstream","owner":"ananthakumaran","description":"An elixir library to write and read ZIP file in a streaming fashion","archived":false,"fork":false,"pushed_at":"2025-03-29T05:07:28.000Z","size":394,"stargazers_count":56,"open_issues_count":3,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-12T14:54:56.681Z","etag":null,"topics":["elixir","stream","streaming","zip","zipfile"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/ananthakumaran.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2017-11-08T17:05:59.000Z","updated_at":"2025-03-29T05:07:24.000Z","dependencies_parsed_at":"2024-06-19T17:35:03.538Z","dependency_job_id":"037460f3-fc1f-4c81-820c-904c0b875e78","html_url":"https://github.com/ananthakumaran/zstream","commit_stats":{"total_commits":74,"total_committers":7,"mean_commits":"10.571428571428571","dds":0.09459459459459463,"last_synced_commit":"26d95fd1d4403b4339b502b269ebb88732934363"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananthakumaran%2Fzstream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananthakumaran%2Fzstream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananthakumaran%2Fzstream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananthakumaran%2Fzstream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ananthakumaran","download_url":"https://codeload.github.com/ananthakumaran/zstream/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464891,"owners_count":22075570,"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":["elixir","stream","streaming","zip","zipfile"],"created_at":"2024-10-14T14:02:20.540Z","updated_at":"2025-05-16T04:04:16.401Z","avatar_url":"https://github.com/ananthakumaran.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zstream\n\n[![CI](https://github.com/ananthakumaran/zstream/workflows/.github/workflows/ci.yml/badge.svg)](https://github.com/ananthakumaran/zstream/actions?query=workflow%3A.github%2Fworkflows%2Fci.yml)\n[![Module Version](https://img.shields.io/hexpm/v/zstream.svg)](https://hex.pm/packages/zstream)\n[![Hex Docs](https://img.shields.io/badge/hex-docs-lightgreen.svg)](https://hexdocs.pm/zstream/)\n[![Total Download](https://img.shields.io/hexpm/dt/zstream.svg)](https://hex.pm/packages/zstream)\n[![License](https://img.shields.io/hexpm/l/zstream.svg)](https://github.com/ananthakumaran/zstream/blob/master/LICENSE)\n[![Last Updated](https://img.shields.io/github/last-commit/ananthakumaran/zstream.svg)](https://github.com/ananthakumaran/zstream/commits/master)\n\nAn Elixir library to read and write ZIP file in a streaming\nfashion. It could consume data from any stream and write to any stream\nwith constant memory overhead.\n\n## Installation\n\nThe package can be installed by adding `:zstream` to your list of dependencies\nin `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:zstream, \"~\u003e 0.6\"}\n  ]\nend\n```\n\n## Examples\n\n```elixir\nZstream.zip([\n  Zstream.entry(\"report.csv\", Stream.map(records, \u0026CSV.dump/1)),\n  Zstream.entry(\"catfilm.mp4\", File.stream!(\"/catfilm.mp4\", [], 512), coder: Zstream.Coder.Stored)\n])\n|\u003e Stream.into(File.stream!(\"/archive.zip\"))\n|\u003e Stream.run\n```\n\n```elixir\nFile.stream!(\"archive.zip\", [], 512)\n|\u003e Zstream.unzip()\n|\u003e Enum.reduce(%{}, fn\n  {:entry, %Zstream.Entry{name: file_name} = entry}, state -\u003e state\n  {:data, :eof}, state -\u003e state\n  {:data, data}, state -\u003e state\nend)\n```\n\n## Features\n\n### zip\n\n* compression (deflate, stored)\n* encryption (traditional)\n* zip64\n\n### unzip\n\n* compression (deflate, stored)\n* zip64\n\n## License\n\nCopyright (c) 2017 Anantha Kumaran\n\nThis library is MIT licensed. See the [LICENSE](https://github.com/ananthakumaran/zstream/blob/master/LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananthakumaran%2Fzstream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fananthakumaran%2Fzstream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananthakumaran%2Fzstream/lists"}