{"id":47694145,"url":"https://github.com/ponylang/courier","last_synced_at":"2026-04-12T02:04:55.378Z","repository":{"id":340898444,"uuid":"1168064642","full_name":"ponylang/courier","owner":"ponylang","description":"An HTTP Client for Pony","archived":false,"fork":false,"pushed_at":"2026-04-03T02:24:57.000Z","size":151,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-03T02:57:21.529Z","etag":null,"topics":["http","http-client","pony-core-team-library","ponylang","ponylang-langauge"],"latest_commit_sha":null,"homepage":"https://ponylang.github.io/courier/","language":"Pony","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ponylang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"ponyc"}},"created_at":"2026-02-27T01:17:26.000Z","updated_at":"2026-04-03T02:25:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ponylang/courier","commit_stats":null,"previous_names":["ponylang/courier"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ponylang/courier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcourier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcourier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcourier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcourier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ponylang","download_url":"https://codeload.github.com/ponylang/courier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcourier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31524531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["http","http-client","pony-core-team-library","ponylang","ponylang-langauge"],"created_at":"2026-04-02T16:17:32.652Z","updated_at":"2026-04-12T02:04:55.373Z","avatar_url":"https://github.com/ponylang.png","language":"Pony","funding_links":["https://opencollective.com/ponyc"],"categories":[],"sub_categories":[],"readme":"# courier\n\nAn HTTP/1.1 client for Pony.\n\n## Status\n\ncourier is beta quality software that will change frequently. Expect breaking changes. That said, you should feel comfortable using it in your projects.\n\n## Installation\n\n* Requires ponyc 0.63.1 or later\n* Install [corral](https://github.com/ponylang/corral)\n* `corral add github.com/ponylang/courier.git --version 0.2.0`\n* `corral fetch` to fetch your dependencies\n* `use \"courier\"` to include this package\n* `corral run -- ponyc` to compile your application\n\nYou'll also need an SSL library installed on your platform. See the [ssl](https://github.com/ponylang/ssl) package for details.\n\n## Usage\n\n```pony\nuse \"courier\"\nuse lori = \"lori\"\n\nactor Main\n  new create(env: Env) =\u003e\n    let auth = lori.TCPConnectAuth(env.root)\n    BasicClient(auth, \"example.com\", \"80\", env.out)\n\nactor BasicClient is HTTPClientConnectionActor\n  var _http: HTTPClientConnection = HTTPClientConnection.none()\n  var _collector: ResponseCollector = ResponseCollector\n  let _out: OutStream\n\n  new create(\n    auth: lori.TCPConnectAuth,\n    host: String,\n    port: String,\n    out: OutStream)\n  =\u003e\n    _out = out\n    _http = HTTPClientConnection(auth, host, port, this,\n      ClientConnectionConfig)\n\n  fun ref _http_client_connection(): HTTPClientConnection =\u003e _http\n\n  fun ref on_connected() =\u003e\n    _http.send_request(Request.get(\"/\").build())\n\n  fun ref on_response(response: Response val) =\u003e\n    _collector = ResponseCollector\n    _collector.set_response(response)\n\n  fun ref on_body_chunk(data: Array[U8] val) =\u003e\n    _collector.add_chunk(data)\n\n  fun ref on_response_complete() =\u003e\n    try\n      let response = _collector.build()?\n      _out.print(String.from_array(response.body))\n    end\n    _http.close()\n\n  fun ref on_closed() =\u003e\n    _out.print(\"Connection closed\")\n```\n\nSee the [examples](examples/) directory for more.\n\n## API Documentation\n\n[https://ponylang.github.io/courier](https://ponylang.github.io/courier)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponylang%2Fcourier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fponylang%2Fcourier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponylang%2Fcourier/lists"}