entropic-dev / entropic-dev/ds

Writing an HTTP client for dstopic

Open
#17 3 comments 0 reactions 1 assignee Claimed by @zkat View on GitHub
blocked
Dominant language
Rust
Stars
53
Forks
6
PR merge metrics
No merged PRs in 30d

Description

As part of development on dstopic (the Rust side of the client), we need to have a shiny new http client with certain features:

* http-compliant caching, to cacache
* retry support
* keepalive support
* async/await support
* (optional, unnecessary, low-priority) proxy support

No existing http clients on crates.io currently support all these features (or even most of them), so we need to write one from scratch!

([original thread](https://discourse.entropic.dev/t/writing-an-http-client-for-dstopic/204?u=zkat))

## Blocked by

* [ ] Land [`surf-middleware-cache`](https://github.com/zkat/surf-middleware-cache)
* [ ] Needs [`http-cache-semantics`](https://github.com/non-binary/http-cache-semantics) to land. (https://github.com/entropic-dev/ds/issues/16)
* [ ] Get `surf` 2.0 over the finish line. The planned API changes are gonna be important to implement this client. (https://github.com/http-rs/surf/issues/107)
* [ ] Implement a baseline client API wrapper around `surf`
* [ ] (Optional) Integrate [`backoff`](https://crates.io/crates/backoff) to automatically retry http requests. Maybe this needs to be implemented as a surf middleware?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.