{"id":13828795,"url":"https://github.com/drager/httper","last_synced_at":"2025-07-21T11:04:57.258Z","repository":{"id":62440272,"uuid":"143212849","full_name":"drager/httper","owner":"drager","description":"An asynchronous HTTP(S) client built on top of hyper.","archived":false,"fork":false,"pushed_at":"2018-08-14T20:54:25.000Z","size":80,"stargazers_count":16,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-12T07:47:46.458Z","etag":null,"topics":["http","http-client","networking","request","rust","rust-library"],"latest_commit_sha":null,"homepage":"https://docs.rs/httper/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drager.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-01T22:01:07.000Z","updated_at":"2022-01-28T02:50:21.000Z","dependencies_parsed_at":"2022-11-01T21:53:20.002Z","dependency_job_id":null,"html_url":"https://github.com/drager/httper","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/drager/httper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drager%2Fhttper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drager%2Fhttper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drager%2Fhttper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drager%2Fhttper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drager","download_url":"https://codeload.github.com/drager/httper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drager%2Fhttper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264988301,"owners_count":23693978,"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":["http","http-client","networking","request","rust","rust-library"],"created_at":"2024-08-04T09:03:09.971Z","updated_at":"2025-07-21T11:04:57.237Z","avatar_url":"https://github.com/drager.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# HTTPer\n[![Build Status](https://travis-ci.org/drager/httper.svg?branch=master)](https://travis-ci.org/drager/httper)\n[![crates.io](https://img.shields.io/crates/v/httper.svg)](https://crates.io/crates/httper)\n[![API docs](https://docs.rs/httper/badge.svg)](https://docs.rs/httper)\n[![MIT/Apache-2.0 licensed](https://img.shields.io/crates/l/httper.svg)](https://github.com/drager/httper/tree/master/README.md#license)\n\nA asynchronous HTTP(S) client built on top of [hyper](https://github.com/hyperium/hyper/).\n\n## Why\nAt the time when I started writting parts of this client\nI couldn't find any higher level asynchronous http(s) client. I also tended to\nwrite the same code over and over again for serveral different projects\nbased on hyper, always wanted to be able to make requests to https addresses\nand deserialize the response body into json.\n\n## Usage\n\nA simple usage example:\n\n```rust\nextern crate httper;\nextern crate tokio;\n#[macro_use]\nextern crate serde_derive;\n\nuse httper::client::HttperClient;\nuse tokio::runtime::Runtime;\n\nfn main() {\n    let mut rt = Runtime::new().unwrap();\n\n    let httper_client = HttperClient::new();\n\n    #[derive(Debug, Deserialize)]\n    struct Contributor {\n        id: u32,\n        login: String,\n    }\n\n    // Call .send() to fire the request and then call .json::\u003cVec\u003cContributor\u003e\u003e()\n    // to turn the json response into a Vec containing Contributor.\n    let result = rt.block_on(\n        httper_client\n            .get(\"https://api.github.com/repos/drager/httper/contributors\")\n            .send()\n            .json::\u003cVec\u003cContributor\u003e\u003e(),\n    );\n\n    println!(\"Contributors: {:?}\", result);\n}\n```\n\n## Features and bugs\n\nPlease file feature requests and bugs at the [issue tracker][tracker].\n\n[tracker]: https://github.com/drager/httper/issues\n\n## License\nLicensed under either of:\n\n* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://apache.org/licenses/LICENSE-2.0)\n* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrager%2Fhttper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrager%2Fhttper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrager%2Fhttper/lists"}