{"id":21835781,"url":"https://github.com/vtex/go-io","last_synced_at":"2025-04-14T09:14:54.841Z","repository":{"id":48101332,"uuid":"135751940","full_name":"vtex/go-io","owner":"vtex","description":"Collection of general-purpose packages for writing scalable go services.","archived":false,"fork":false,"pushed_at":"2025-04-11T14:50:50.000Z","size":10670,"stargazers_count":3,"open_issues_count":7,"forks_count":3,"subscribers_count":110,"default_branch":"master","last_synced_at":"2025-04-14T09:14:47.122Z","etag":null,"topics":["srv-go-libs","xp-developer"],"latest_commit_sha":null,"homepage":"","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/vtex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-01T18:40:39.000Z","updated_at":"2025-04-10T16:42:51.000Z","dependencies_parsed_at":"2024-06-20T16:17:27.209Z","dependency_job_id":"a79b75e3-33ac-46bc-b986-218e536e623a","html_url":"https://github.com/vtex/go-io","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex%2Fgo-io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex%2Fgo-io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex%2Fgo-io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex%2Fgo-io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vtex","download_url":"https://codeload.github.com/vtex/go-io/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248852183,"owners_count":21171842,"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":["srv-go-libs","xp-developer"],"created_at":"2024-11-27T20:24:41.372Z","updated_at":"2025-04-14T09:14:54.821Z","avatar_url":"https://github.com/vtex.png","language":"Go","readme":"# go-io\n\n## Overview\n\nCollection of general-purpose packages for writing scalable go services.\n\nMany sub-packages are merely compositions or thin layers on top of other\nopen source packages like for caching, monitoring, etc., offering easy\nconsumption by providing simplified configuration with sane defaults\nand opinionated/higher-level usage interfaces.\n\nInitially developed and open-source by VTEX IO Infra team.\n\n## Packages\n\nAs we don't have much documentation in the code itself yet, here are some\nhigh level descriptions for each of the root exported packages:\n - `cache`: Simplified interfaces for http, local and remote caching,\n as well as some ready-to-use implementations for \"stale on error\" and\n multi-layer \"hybrid\" cache.\n - `redis`: Provides an implementation for the `Cache` interface from the above\n package using a Redis instance as storage. Also provides implementation of an\n optimized and channel-oriented Redis PubSub client.\n- `ioext`: Utilities related to I/O that could be in go's `io` package.\n  * `ChunkedData` implements `gin.Render` interface for serving large responses\n  with `Transfer-Encoding: chunked` and optimized buffer/memory and async flushing.\n  * `TarGzWriter` and `Zip...` provide simplified interfaces for extracting and\n  compressing data on those popular formats.\n  * `Tee` creates an easy way to clone an `io.Reader`, effectively duplicating the\n  contents streamed through it. e.g. Useful for caching in background while\n  concurrently streaming response to client.\n- `prometheus`: Opinionated higher-level interfaces for sending metrics of the system\nto Prometheus.\n- `sharedflight`: Like (and built on top of) [`singleflight`](golang.org/x/sync/singleflight),\nbut supporting shared cancellation based on all consumers waiting for response.\n- `reflext` Utilities related to reflection that could be on `reflect`. Only a single\nutility is currently provided, for panic-safely setting the value of a pointer with\nexplicit error handling, to avoid panicking to users of APIs.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvtex%2Fgo-io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvtex%2Fgo-io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvtex%2Fgo-io/lists"}