{"id":14968790,"url":"https://github.com/supabase/plug_caisson","last_synced_at":"2025-10-14T15:39:56.857Z","repository":{"id":212684235,"uuid":"732048962","full_name":"supabase/plug_caisson","owner":"supabase","description":"An Elixir Plug library for handling compressed requests","archived":false,"fork":false,"pushed_at":"2025-04-13T20:29:20.000Z","size":70,"stargazers_count":19,"open_issues_count":1,"forks_count":5,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-09-23T06:31:23.238Z","etag":null,"topics":["elixir","plug"],"latest_commit_sha":null,"homepage":"https://hex.pm/packages/plug_caisson","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/supabase.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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,"zenodo":null},"funding":{"github":["supabase"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2023-12-15T14:10:28.000Z","updated_at":"2025-09-12T02:50:00.000Z","dependencies_parsed_at":"2024-01-05T12:43:54.925Z","dependency_job_id":"faf0565a-8bac-4bdc-a1c4-1e888baf05c0","html_url":"https://github.com/supabase/plug_caisson","commit_stats":{"total_commits":22,"total_committers":2,"mean_commits":11.0,"dds":"0.40909090909090906","last_synced_commit":"6221b9feff96a5f634fad0b7a3ce4a0b898c3f00"},"previous_names":["supabase/plug_caisson"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/supabase/plug_caisson","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supabase%2Fplug_caisson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supabase%2Fplug_caisson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supabase%2Fplug_caisson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supabase%2Fplug_caisson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/supabase","download_url":"https://codeload.github.com/supabase/plug_caisson/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supabase%2Fplug_caisson/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019346,"owners_count":26086711,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","plug"],"created_at":"2024-09-24T13:40:34.305Z","updated_at":"2025-10-14T15:39:56.852Z","avatar_url":"https://github.com/supabase.png","language":"Elixir","readme":"# PlugCaisson\n\nAn Elixir `Plug.Parsers` body reader that supports compressed payloads. Supports gzip, brotli, and [more](#supported-algorithms).\n\n\u003e A [caisson][caisson] is an geoengineering structure used to work on foundations of\n\u003e bridges and piers. Due to pressurised environment in the caisson (required to\n\u003e keep water out of it (as it has no bottom) people can get [decompression\n\u003e sickness][sick], also known as _caisson disease_.\n\n[sick]: https://en.wikipedia.org/wiki/Decompression_sickness\n[caisson]: https://en.wikipedia.org/wiki/Caisson_(engineering)\n\n## Installation\n\nAdd `:plug_caisson` to dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:plug_caisson, \"~\u003e 0.2.0\"},\n    # optional, for brotli support\n    {:brotli, \"~\u003e 0.3.2\"},\n    # optional, for zstd support\n    {:ezstd, \"~\u003e 1.0\"},\n  ]\nend\n```\n\nAnd then add `{PlugCaisson, :read_body, []}` as a `:body_reader` to your `Plug.Parsers`:\n\n```elixir\nplug Plug.Parsers,\n  parsers: [:urlencoded, :json],\n  body_reader: {PlugCaisson, :read_body, []},\n  length: 8_000_000\n```\n\nAll options passed to the plug are forwarded to [`Plug.Conn.read_body/2`](https://hexdocs.pm/plug/Plug.Conn.html#read_body/2).\n\n### Supported algorithms\n\n- `gzip` - GNU zip - most common compression algorithm used in HTTP - [RFC 1952][]\n- `deflate` - DEFLATE compressed data ([RFC 1951][]) wrapped in Zlib data format\n  ([RFC 1950][])\n- `br` (requires optional `:brotli` dependency) - Brotli algorithm developed by\n  Google and supported by most browsers nowadays - [RFC 7932][]\n- `zstd` (requires optional `:ezstd` dependency) - Zstandard algorithm developed\n  by Meta (Facebook) which provides faster compression/decompression times than\n  Brotli, but worse compression ratio - [RFC 8478][]\n\n[RFC 1950]: https://datatracker.ietf.org/doc/html/rfc1950\n[RFC 1951]: https://datatracker.ietf.org/doc/html/rfc1951\n[RFC 1952]: https://datatracker.ietf.org/doc/html/rfc1952\n[RFC 7932]: https://datatracker.ietf.org/doc/html/rfc7932\n[RFC 8478]: https://datatracker.ietf.org/doc/html/rfc8478\n","funding_links":["https://github.com/sponsors/supabase"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupabase%2Fplug_caisson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupabase%2Fplug_caisson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupabase%2Fplug_caisson/lists"}