{"id":22161970,"url":"https://github.com/codedge-llc/kadabra","last_synced_at":"2026-02-22T19:22:29.374Z","repository":{"id":11412487,"uuid":"69597306","full_name":"codedge-llc/kadabra","owner":"codedge-llc","description":"HTTP/2 client for Elixir","archived":false,"fork":false,"pushed_at":"2025-09-13T15:48:02.000Z","size":321,"stargazers_count":44,"open_issues_count":16,"forks_count":25,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-13T17:51:07.357Z","etag":null,"topics":["elixir","elixir-lang","http2","web"],"latest_commit_sha":null,"homepage":"https://hex.pm/packages/kadabra","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/codedge-llc.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["codedge-llc"]}},"created_at":"2016-09-29T18:45:19.000Z","updated_at":"2025-09-13T15:48:05.000Z","dependencies_parsed_at":"2024-06-19T05:24:11.589Z","dependency_job_id":"24bbad05-78da-4a86-b53e-baf0665f1eb5","html_url":"https://github.com/codedge-llc/kadabra","commit_stats":{"total_commits":144,"total_committers":6,"mean_commits":24.0,"dds":0.2569444444444444,"last_synced_commit":"30294732999677df50e3dfa0410e6930dea69f86"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/codedge-llc/kadabra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedge-llc%2Fkadabra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedge-llc%2Fkadabra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedge-llc%2Fkadabra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedge-llc%2Fkadabra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codedge-llc","download_url":"https://codeload.github.com/codedge-llc/kadabra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedge-llc%2Fkadabra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29724080,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T19:15:09.475Z","status":"ssl_error","status_checked_at":"2026-02-22T19:15:09.045Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","elixir-lang","http2","web"],"created_at":"2024-12-02T04:17:48.096Z","updated_at":"2026-02-22T19:22:29.335Z","avatar_url":"https://github.com/codedge-llc.png","language":"Elixir","funding_links":["https://github.com/sponsors/codedge-llc"],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/codedge-llc/kadabra.svg?branch=master)](https://travis-ci.org/codedge-llc/kadabra)\n[![Coverage Status](https://coveralls.io/repos/github/codedge-llc/kadabra/badge.svg?branch=master)](https://coveralls.io/github/codedge-llc/kadabra?branch=master)\n[![Hex.pm](http://img.shields.io/hexpm/v/kadabra.svg)](https://hex.pm/packages/kadabra)\n[![Hex.pm](http://img.shields.io/hexpm/dt/kadabra.svg)](https://hex.pm/packages/kadabra)\n\n# Kadabra\n\nHTTP/2 client for Elixir\n\nWritten to manage HTTP/2 connections for [pigeon](https://github.com/codedge-llc/pigeon). Very much a work in progress.\n\n## Installation\n\n_Requires Elixir 1.6/OTP 19.2 or later._\n\nAdd kadabra to your `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:kadabra, \"~\u003e 0.6.1\"}\n  ]\nend\n```\n\n## Usage\n\n```elixir\n{:ok, pid} = Kadabra.open(\"https://http2.codedge.dev\")\nKadabra.get(pid, \"/\")\nreceive do\n  {:end_stream, %Kadabra.Stream.Response{} = stream} -\u003e\n  IO.inspect stream\nafter 5_000 -\u003e\n  IO.puts \"Connection timed out.\"\nend\n\n%Kadabra.Stream.Response{\n  body: \"\u003chtml\u003e\\\\n\u003cbody\u003e\\\\n\u003ch1\u003eGo + HTTP/2\u003c/h1\u003e\\\\n\\\\n\u003cp\u003eWelcome to...\"\n  headers: [\n    {\":status\", \"200\"},\n    {\"content-type\", \"text/html; charset=utf-8\"},\n    {\"content-length\", \"1708\"},\n    {\"date\", \"Sun, 16 Oct 2016 21:20:47 GMT\"}\n  ],\n  id: 1,\n  status: 200\n}\n```\n\n## Making Requests Manually\n\n```elixir\n{:ok, pid} = Kadabra.open(\"https://http2.codedge.dev\")\n\npath = \"/ECHO\" # Route echoes PUT body in uppercase\nbody = \"sample echo request\"\nheaders = [\n  {\":method\", \"PUT\"},\n  {\":path\", path},\n]\n\nKadabra.request(pid, headers, body)\n\nreceive do\n  {:end_stream, %Kadabra.Stream.Response{} = stream} -\u003e\n  IO.inspect stream\nafter 5_000 -\u003e\n  IO.puts \"Connection timed out.\"\nend\n\n%Kadabra.Stream.Response{\n  body: \"SAMPLE ECHO REQUEST\",\n  headers: [\n    {\":status\", \"200\"},\n    {\"content-type\", \"text/plain; charset=utf-8\"},\n    {\"date\", \"Sun, 16 Oct 2016 21:28:15 GMT\"}\n  ],\n  id: 1,\n  status: 200\n}\n```\n\n## Contributing\n\n### Testing\n\nUnit tests can be run with `mix test` or `mix coveralls.html`.\n\n### Formatting\n\nThis project uses Elixir's `mix format` and [Prettier](https://prettier.io) for formatting.\nAdd hooks in your editor of choice to run it after a save. Be sure it respects this project's\n`.formatter.exs`.\n\n### Commits\n\nGit commit subjects use the [Karma style](http://karma-runner.github.io/5.0/dev/git-commit-msg.html).\n\n## License\n\nCopyright (c) 2016-2024 Codedge LLC (https://www.codedge.io/)\n\nThis library is MIT licensed. See the [LICENSE](https://github.com/codedge-llc/kadabra/blob/master/LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodedge-llc%2Fkadabra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodedge-llc%2Fkadabra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodedge-llc%2Fkadabra/lists"}