30 Commits

Author SHA1 Message Date
HoneyryderChuck
82b0a4bf28 fix: https resolver should close when no more outstanding connections are around 2022-01-16 22:54:56 +02:00
HoneyryderChuck
5c019c440f added test for testing the env var proxy defs 2022-01-08 15:09:11 +02:00
HoneyryderChuck
27d81f3090 introduce custom timer to replace Timers::Group
The HTTPX::Timers class mimicks the same top-level API as its
predecessors, but simplifies its implementation. Adding a timer will
resort all timers, while lookups are roughly the same complexity. The
key difference is that callbacks are now aggregated by interval, i.e.
different requests setting the same timeout, will reuse the same timer.
This is a more simple design than Timers::Group, which stores timers in
a binary search tree; the latter will perform well in any environment,
whereas the first one is more tailored for the use-case of httpx, where
most of the times no timers will be set, and when they do, the same
timer will be reused for all requests because they usually have the same
set of options (and therefore timeouts).
2021-09-20 13:19:55 +01:00
HoneyryderChuck
b5ec7acd51 making get/set access to the plugins hash thread-safe 2021-07-07 12:45:14 +01:00
HoneyryderChuck
e3468fb3c4 isolating the punycode module 2021-06-11 14:44:07 +01:00
HoneyryderChuck
bc6bc903fc moved default options out of the initializer 2021-04-08 17:46:54 +01:00
HoneyryderChuck
bf0ec99794 removed the timeout class 2021-04-08 17:34:19 +01:00
HoneyryderChuck
981824bf47 fixing how to load plugins on boot, such as the http_proxy when the system proxy is set 2021-02-15 17:20:41 +00:00
HoneyryderChuck
cbfb5c968e moving domain_name module to core httpx, as the punycode IDN translation will be needed at this layer 2020-11-07 01:34:48 +00:00
HoneyryderChuck
01552757a0 supporting the retry-after header for redirections as well 2020-10-31 14:15:28 +00:00
HoneyryderChuck
1d86db13a1 added tests for certain untested options of a session 2020-01-12 20:38:05 +00:00
HoneyryderChuck
c1c0c536eb Client -> Session (signal this as deprecation, as this is public API 2019-03-16 16:32:33 +00:00
HoneyryderChuck
b6d6597cb8 Connection -> Pool 2019-03-16 15:23:49 +00:00
HoneyryderChuck
94f335fd2f moved all altsvc-specific logic to AltSvc module; renamed uri to origin where possible; fixed the creation of the alternative channel 2018-11-22 18:07:45 +00:00
HoneyryderChuck
5a09575263 parsing alternative service header in channel instead, emit event 2018-11-22 18:07:45 +00:00
HoneyryderChuck
e051ea57da added alternative services store 2018-11-22 18:07:45 +00:00
HoneyryderChuck
861d69c409 fixed all remaining rubocop fails 2018-01-28 23:01:33 +00:00
HoneyryderChuck
c4811c01f8 added support for rubies between 2.1 and 2.5 (polyfills) 2018-01-28 20:13:04 +00:00
HoneyryderChuck
0821b13ba9 add log method as a mixin 2018-01-04 23:45:55 +00:00
HoneyryderChuck
2742f4f9af added chainable module, a la http gem 2017-12-07 21:15:39 +00:00
HoneyryderChuck
9c40845d94 added the ability to load plugins in the client, allowing to extend request/response/headers transparently 2017-12-07 01:05:01 +00:00
HoneyryderChuck
fbdd7e2dd8 added registry module, where one can register by a tag; introducing transcoder, modules which can encode and decode; using them for the body/form/json bodies 2017-12-06 19:49:26 +00:00
HoneyryderChuck
a214891fa1 added timeouts backend like http, integrated it in connecting sockets, and performing selector operations; the global one still needs work though (currently connecting one by one, connection not integrated in selector) 2017-11-29 00:07:49 +00:00
HoneyryderChuck
c7319964c0 added the options module, similar to http 2017-11-28 18:12:02 +00:00
HoneyryderChuck
85f08f0c7a changed the resource structure 2017-11-28 14:36:18 +00:00
HoneyryderChuck
0bcfc7fbe2 added first structure draft, resource names to change, but... it works\! to nghttp2 2017-11-28 01:24:24 +00:00
HoneyryderChuck
bbd472186b deleted it all 2017-11-27 22:26:22 +00:00
HoneyryderChuck
b1530da6aa added content-type parser 2017-11-27 17:20:59 +00:00
HoneyryderChuck
c0f2efdc16 added other timeouts, for now empty 2017-11-27 17:20:34 +00:00
HoneyryderChuck
b9091db9fa added main building blocks necessary to implement and verify the public API 2017-11-27 17:15:15 +00:00