Commit Graph

  • 2dede153c2 timeout: allow to pass timeout as class, allow to pass options and set per-operation timeout as the default HoneyryderChuck 2017-12-07 21:11:18 +00:00
  • 0458ee2016 plugin: allow to extend options as well HoneyryderChuck 2017-12-07 16:45:37 +00:00
  • f5e6b38d47 loading https in the test script HoneyryderChuck 2017-12-07 01:07:37 +00:00
  • 15a972df32 added tests to the req/rep/head factory classes, and to the plugin module HoneyryderChuck 2017-12-07 01:07:17 +00:00
  • b975f7e3c5 Merge branch 'reactor' into 'master' HoneyryderChuck 2017-12-07 01:06:14 +00:00
  • 9c40845d94 added the ability to load plugins in the client, allowing to extend request/response/headers transparently HoneyryderChuck 2017-12-07 01:05:01 +00:00
  • 3df3eba0fc pimping my examples HoneyryderChuck 2017-12-06 20:32:46 +00:00
  • 8d1f67d814 encoders: using forwardable, and adding force_encoding support (for http-2) HoneyryderChuck 2017-12-06 20:32:20 +00:00
  • 734a187ce1 added tests for request body, fixed #bytesize's HoneyryderChuck 2017-12-06 20:16:05 +00:00
  • 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 HoneyryderChuck 2017-12-06 19:49:26 +00:00
  • e7b943ba39 requests: added support for post body encoding, for json and form params for now HoneyryderChuck 2017-12-06 19:25:33 +00:00
  • 3ff56ceb09 changed the concept of an empty http1 channel HoneyryderChuck 2017-12-06 18:24:43 +00:00
  • ee59c71274 allow to return early responses just with headers; added a bufferable body, which means, when body is requests, it fetches it (if not available yet); for this, the selector must be exposed to all sub-levels; the response body by default buffers first/returns later for #to_s, and buffers and yields chunks on #each HoneyryderChuck 2017-12-06 17:20:03 +00:00
  • 6f133bb726 http1: improved request logging, ensured that request has connection set-up HoneyryderChuck 2017-12-06 14:48:13 +00:00
  • c180f5ba71 added close callback (http1: when server tells to close; http2: when there are no more streams) HoneyryderChuck 2017-12-06 14:35:49 +00:00
  • 7cc2f66eed added retryability, in that certain errors (for http2 now, rst_stream ones); added a max concurrent requests setting, which governs how many concurrent requests might be inflight (besides the obvious settings handled by the lower layer) HoneyryderChuck 2017-12-06 14:27:58 +00:00
  • abff891a14 introducing the concept of error response; when no response was generated, and stream was closed, assume there was an error, and pass it; the #status message should return the error code; this should keep the multi-send requests from stalling HoneyryderChuck 2017-12-06 11:00:55 +00:00
  • 95d141b4d9 removed the tcp and ssl channels, added proper IO wrappers (which now enables the possibility of IO customization), and channel just got a bit cleaner HoneyryderChuck 2017-11-29 23:05:30 +00:00
  • bd67d3d745 added nonblocking connection, which makes timeouts now much more acurate; force renovation of timeout, as per_operation's first is the connection one (after connection, pass to operation) HoneyryderChuck 2017-11-29 21:26:47 +00:00
  • e5c183cb98 monitor value is the channel itself, which responds to #call; this will be the end-all/be-all API HoneyryderChuck 2017-11-29 20:55:08 +00:00
  • 6728cfac00 closed set/removed in the proper methods HoneyryderChuck 2017-11-29 20:53:16 +00:00
  • 5c429ebc3f passing the on_response callback in the channel init; this is passed to the processor after HoneyryderChuck 2017-11-29 20:52:30 +00:00
  • 79c886eac7 tcp: get the remote ip/port early, use them to bind to port HoneyryderChuck 2017-11-29 20:50:29 +00:00
  • d411e66942 reworked timeout method: as the channels are now gonna connect on select, just make sure that the first timeout used is the connect timeout (this doesn't solve everything, though) HoneyryderChuck 2017-11-29 19:35:05 +00:00
  • 5bbc15528e added proper selector/monitor, replaced where necessary HoneyryderChuck 2017-11-29 18:50:47 +00:00
  • bf757d194f better example HoneyryderChuck 2017-11-29 18:29:11 +00:00
  • 2ef5c05b63 add pending requests queue for http2, when one exceeds the number of concurrent streams HoneyryderChuck 2017-11-29 18:28:58 +00:00
  • c6badc988e added rakefile with test task HoneyryderChuck 2017-11-29 02:19:15 +00:00
  • 8164ff0bcb added test to client HoneyryderChuck 2017-11-29 02:18:17 +00:00
  • 149cfb602d enabled pipelining; allowed for reconnections in HTTP/1 which require to close the connection (which should be the exception) HoneyryderChuck 2017-11-29 02:17:45 +00:00
  • c0b1e12130 added support for sending and receiving multiple pipelined requests HoneyryderChuck 2017-11-29 00:10:01 +00:00
  • b8ed75e4ff connect to same socket not only based on same ip and port, but also scheme (you don't want to mix http and https in same socket) HoneyryderChuck 2017-11-29 00:09:33 +00:00
  • 6febd49086 server push: policy now is to ignore pushed resources HoneyryderChuck 2017-11-29 00:08:24 +00:00
  • 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) HoneyryderChuck 2017-11-29 00:06:38 +00:00
  • 8edca3e579 added more urls in example, close the client in the end HoneyryderChuck 2017-11-28 18:14:37 +00:00
  • d4238691ac fixed the http2 join methods HoneyryderChuck 2017-11-28 18:14:12 +00:00
  • c7319964c0 added the options module, similar to http HoneyryderChuck 2017-11-28 18:12:02 +00:00
  • 70a2d7ad82 added http/1 channel HoneyryderChuck 2017-11-28 16:41:24 +00:00
  • f3255ff182 added ssl channel, with alpn negotiation support HoneyryderChuck 2017-11-28 15:09:11 +00:00
  • 85f08f0c7a changed the resource structure HoneyryderChuck 2017-11-28 14:36:18 +00:00
  • 46a1223187 addest tests for headers/request/response HoneyryderChuck 2017-11-28 14:00:16 +00:00
  • 0bcfc7fbe2 added first structure draft, resource names to change, but... it works\! to nghttp2 HoneyryderChuck 2017-11-28 01:24:24 +00:00
  • 63ce9297c8 starting http/2 first, removing rspec HoneyryderChuck 2017-11-28 01:23:41 +00:00
  • bbd472186b deleted it all HoneyryderChuck 2017-11-27 22:26:22 +00:00
  • b1530da6aa added content-type parser HoneyryderChuck 2017-11-27 17:20:59 +00:00
  • c0f2efdc16 added other timeouts, for now empty HoneyryderChuck 2017-11-27 17:20:34 +00:00
  • b9091db9fa added main building blocks necessary to implement and verify the public API HoneyryderChuck 2017-11-27 16:54:02 +00:00
  • ef17b68274 the spec helper HoneyryderChuck 2017-11-27 16:52:24 +00:00
  • a50e4851f6 the .rspec HoneyryderChuck 2017-11-27 16:51:45 +00:00
  • 397cc106cb the gemspec HoneyryderChuck 2017-11-27 16:51:33 +00:00
  • 29d1ba470f the Gemfile HoneyryderChuck 2017-11-27 16:51:26 +00:00
  • 24fe0af2a7 ignoring HoneyryderChuck 2017-11-27 16:51:20 +00:00
  • 3c122b8894 initial commit HoneyryderChuck 2017-11-27 00:42:45 +00:00