Skip to content

Faraday Wishlist #953

@technoweenie

Description

@technoweenie

I want to start collecting a wishlist for what we want to change in Faraday. Nothing here is concrete yet.

Faraday v2.0

  • Reorganize param encoders: lib/faraday/params_encoders/[nested, flat] ?
  • Extract adapters as gems
    • em-http
    • em-http-ssl-patch
    • em-synchrony
    • excon
    • httpclient
    • net-http
    • net-http-persistent
    • patron
    • rack
    • typhoeus

Faraday v3.0

  • Use SNAKE_CASE constants consistently
  • Kill Faraday::Utils
  • Faraday::Connection => Faraday::Client
  • Remove Options structs in favor of properties on Client/Request/Response
  • Remove env in favor of request/response object properties
  • Consistent #response property on HTTP-related error classes (RaiseError, RetriableRequest, etc) [Can not view details of failed requests  #1284]
  • Kill adapter/middleware autoloading in favor of good ole ruby
  • Revisit adapter/middleware internal API (drop Rack adapter semantics)
  • Redesign Faraday::Connection and Faraday::RackBuilder relationship
    • Remove use/adapter/etc delegation
    • Faraday::RackBuilder#handlers => Faraday::Connection#handlers
  • Reorganize middleware lib/faraday/middleware/*
  • Retry mw: extract exponential backoff timing stuff
  • Logging/Instrumentalization: built into Faraday, usable by any middleware
  • Combine net/http and net/http persistent adapters
  • Streaming by default, while providing easy access to cached string response bodies
  • HTTP/Socks proxy support (needs to be implemented in the http libs themselves)
  • Built-in multipart support with better api.
  • Revisit pipelining or parallel requests (net-http-pipeline, typhoeus)
  • Consistent response error raising (/cc #1042)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions