1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-24 16:32:59 +01:00
Commit Graph

1005 Commits

Author SHA1 Message Date
Nikolay Kim
1c6ddfd34c naming 2018-03-09 05:36:40 -08:00
Nikolay Kim
49e007ff2a move protobuf support to the example 2018-03-09 05:29:06 -08:00
Nikolay Kim
f3c63e631a add protobuf feature 2018-03-08 20:56:18 -08:00
Nikolay Kim
3f0803a7d3 Merge branch 'master' of github.com:actix/actix-web 2018-03-08 20:39:10 -08:00
Nikolay Kim
f12b613211 more ws optimizations 2018-03-08 20:39:05 -08:00
kingxsp
63634be542
Merge branch 'master' into master 2018-03-09 10:22:15 +08:00
Nikolay Kim
f88f1c65b6 update tests 2018-03-08 18:19:46 -08:00
kingxsp
a0b589eb96 Add protobuf support 2018-03-09 10:05:13 +08:00
Nikolay Kim
ebdc983dfe optimize websocket stream 2018-03-08 17:19:50 -08:00
Nikolay Kim
395243a539 another attempt to fix cookie handling 2018-03-08 11:16:54 -08:00
Nikolay Kim
1ab676d7eb bump version and add some tests 2018-03-07 22:40:46 -08:00
Nikolay Kim
47f01e5b7e update doc string 2018-03-07 21:39:20 -08:00
Nikolay Kim
ffb89935b6 update all features 2018-03-07 21:37:42 -08:00
Nikolay Kim
6c0fb3a7d2 handle panics in worker threads 2018-03-07 21:10:53 -08:00
Nikolay Kim
824244622f update test 2018-03-07 17:42:57 -08:00
Nikolay Kim
42d2a29b1d non-blocking processing for NamedFile 2018-03-07 17:40:13 -08:00
Nikolay Kim
af8875f6ab sleep on accept socket error 2018-03-07 15:52:05 -08:00
Nikolay Kim
1db1ce1ca3 one more cookie handling fix 2018-03-07 15:41:46 -08:00
Nikolay Kim
f55ef3a059 create default CpuPool 2018-03-07 14:56:53 -08:00
Nikolay Kim
67bf0ae79f fix HttpServer::listen method 2018-03-07 14:46:12 -08:00
Thedancingbard
7cce29b633 BoyScoutRule: Fixed typo 2018-03-07 21:54:25 +01:00
Nikolay Kim
c26d9545a5 map connector timeout error 2018-03-07 12:09:53 -08:00
Nikolay Kim
0bf29a522b Allow to use std::net::TcpListener for HttpServer 2018-03-07 11:28:44 -08:00
Nikolay Kim
24342fb745
Merge pull request #113 from niklasf/csrf-upgrade
Let CSRF filter catch cross-site upgrades
2018-03-07 09:58:30 -08:00
Niklas Fiekas
0278e364ec add tests for csrf upgrade filter 2018-03-07 18:42:21 +01:00
Niklas Fiekas
b9d6bbd357 filter cross-site upgrades in csrf middleware 2018-03-07 17:49:30 +01:00
Niklas Fiekas
5816ecd1bc fix variable name: cors -> csrf 2018-03-07 17:44:19 +01:00
Nikolay Kim
9e0e081c90
Merge branch 'master' into cookie-handling 2018-03-07 06:12:37 -08:00
Alex Whitney
9afad5885b fix client cookie handling 2018-03-07 09:48:34 +00:00
kindiana
04d0abb3c7 make session an optional feature 2018-03-07 15:38:58 +08:00
Nikolay Kim
c1419413aa Fix client cookie support 2018-03-06 22:36:34 -08:00
Nikolay Kim
acd33cccbb add tls 2018-03-06 17:34:46 -08:00
Nikolay Kim
57a1d68f89 add client response timeout 2018-03-06 17:04:48 -08:00
Nikolay Kim
6a3c5c4ce0
Merge branch 'master' into feature/allow_connection_timeout_to_be_set 2018-03-06 15:18:25 -08:00
Nikolay Kim
14a511bdad use IntoHeaderValue and Header for client request 2018-03-06 15:18:04 -08:00
Glade Miller
6b9e51740b
Merge branch 'master' into feature/allow_connection_timeout_to_be_set 2018-03-06 15:28:31 -07:00
Glade Miller
be7e8d159b Allow connection timeout to be set 2018-03-06 15:26:09 -07:00
Niklas Fiekas
85b650048d give a url in the log when starting 2018-03-06 20:37:18 +01:00
Nikolay Kim
a0e6313d56 Fix compression #103 and #104 2018-03-06 11:02:03 -08:00
Nikolay Kim
526753ee88 update tests for stable compiler 2018-03-06 07:56:43 -08:00
Nikolay Kim
32b5544ad9 port hyper header 2018-03-06 00:43:25 -08:00
Nikolay Kim
e182ed33b1 add Header trait 2018-03-05 19:28:42 -08:00
Nikolay Kim
0c30057c8c move headers to separate module; allow custom HeaderValue conversion 2018-03-05 16:45:54 -08:00
Nikolay Kim
05e49e893e allow only GET and HEAD for NamedFile 2018-03-05 14:04:30 -08:00
Nikolay Kim
c8844425ad Enable compression support for NamedFile 2018-03-05 13:31:30 -08:00
Nikolay Kim
b282ec106e Add ResponseError impl for SendRequestError 2018-03-05 13:02:31 -08:00
Nikolay Kim
cbb821148b explicitly set tcp nodelay 2018-03-04 20:14:58 -08:00
Nikolay Kim
11347e3c7d Allow to use Arc<Vec<u8>> as response/request body 2018-03-04 10:33:18 -08:00
Nikolay Kim
631fe72a46 websockets text() is more generic 2018-03-04 10:18:42 -08:00
Nikolay Kim
f673dba759 Fix handling of requests with an encoded body with a length > 8192 #93 2018-03-04 09:48:34 -08:00
Nikolay Kim
2ccbd5fa18 fix socket polling 2018-03-03 12:17:26 -08:00
Nikolay Kim
058630d041 simplify channels list management 2018-03-03 11:16:55 -08:00
Nikolay Kim
f456be0309 simplify linked nodes 2018-03-03 10:06:13 -08:00
Nikolay Kim
9bd6cb03ac Merge branch 'master' of github.com:actix/actix-web 2018-03-03 09:29:46 -08:00
Nikolay Kim
83fcdfd91f fix potential bug in payload processing 2018-03-03 09:27:54 -08:00
Anti Revoluzzer
4e41347de8 move reuse_address before bind 2018-03-02 22:57:11 -08:00
Nikolay Kim
791a980e2d update tests 2018-03-02 22:08:56 -08:00
Nikolay Kim
c2d8abcee7 Fix disconnect on idle connections 2018-03-02 20:47:23 -08:00
Nikolay Kim
16c05f07ba make HttpRequest::match_info_mut() public 2018-03-02 20:40:08 -08:00
Nikolay Kim
2158ad29ee add Pattern::with_prefix, make it usable outside of actix 2018-03-02 20:39:22 -08:00
Nikolay Kim
feba5aeffd bump version 2018-03-02 14:31:23 -08:00
Nikolay Kim
e60acb7607
Merge branch 'master' into csrf-middleware 2018-03-02 12:25:05 -08:00
Nikolay Kim
3b2928a391 Better naming for websockets implementation 2018-03-02 11:29:55 -08:00
Niklas Fiekas
10f57dac31 add csrf filter middleware 2018-03-02 20:13:43 +01:00
Nikolay Kim
b640b49b05 adjust low buf size 2018-03-01 20:13:50 -08:00
Nikolay Kim
1fea4bd9a6 prepare release 2018-03-01 20:01:25 -08:00
Nikolay Kim
206c4e581a rename httpcodes 2018-03-01 19:12:59 -08:00
Nikolay Kim
4e13505b92 rename .p to a .filter 2018-03-01 18:42:50 -08:00
Nikolay Kim
5b6d7cddbf Fix payload parse in situation when socket data is not ready 2018-03-01 18:27:04 -08:00
Nikolay Kim
4aaf9f08f8 update readme 2018-02-28 22:31:54 -08:00
Nikolay Kim
d62d6e68e0 use new version of http crate 2018-02-28 14:16:55 -08:00
Alex Whitney
313396d9b5 fix session mut borrow lifetime 2018-02-28 19:35:26 +00:00
Nikolay Kim
171a23561e export Drain 2018-02-28 11:10:54 -08:00
Nikolay Kim
8994732227 doc strings 2018-02-27 23:30:26 -08:00
Nikolay Kim
7591592279 fix handle big data chunkd for parsing 2018-02-27 23:04:57 -08:00
Nikolay Kim
1e2aa4fc90 mark context as modified after writing data 2018-02-27 18:05:06 -08:00
Nikolay Kim
e2c8f17c2c drop connection if handler get dropped without consuming payload 2018-02-27 16:08:57 -08:00
Nikolay Kim
4f99cd1580 add ws error tracing 2018-02-27 15:38:57 -08:00
Nikolay Kim
1f063e4136 move with_connector method to ClientRequestBuilder 2018-02-27 15:14:33 -08:00
Nikolay Kim
a7bf635158 unify headers and body processing for client response and server request 2018-02-27 15:03:28 -08:00
Nikolay Kim
aac9b5a97c update readme 2018-02-27 12:49:11 -08:00
Nikolay Kim
6c480fae90 added HttpRequest::encoding() method; fix urlencoded parsing with charset 2018-02-27 11:31:54 -08:00
Nikolay Kim
5dcb558f50 refactor websockets handling 2018-02-27 10:09:24 -08:00
Nikolay Kim
a344c3a02e remove read buffer management api 2018-02-26 20:07:22 -08:00
Nikolay Kim
abae65a49e remove unused code 2018-02-26 16:11:00 -08:00
Nikolay Kim
d6fd4a3524 use buffer capacity; remove unused imports 2018-02-26 15:34:25 -08:00
Nikolay Kim
72aa2d9eae clippy warnings 2018-02-26 14:33:56 -08:00
Nikolay Kim
644f1a9518 refactor ws frame parser 2018-02-26 13:58:23 -08:00
Nikolay Kim
0a3b776aa7 refactor multipart stream 2018-02-26 06:00:54 +03:00
Nikolay Kim
6ef9c60361 add Read and AsyncRead impl to HttpRequest 2018-02-25 21:26:58 +03:00
Nikolay Kim
a2b98b31e8 refactor payload related futures for HttpRequest 2018-02-25 20:34:26 +03:00
Nikolay Kim
ab5ed27bf1 refactor and simplify content encoding 2018-02-25 11:43:00 +03:00
Nikolay Kim
141b992450 Make payload and httprequest a stream 2018-02-25 11:21:45 +03:00
Nikolay Kim
4e41e13baf refactor client payload processing 2018-02-25 11:18:17 +03:00
Nikolay Kim
a855c8b2c9 better ergonomics for WsClient::client() 2018-02-24 08:14:21 +03:00
Nikolay Kim
fd31eb74c5 better ergonomics for ws client 2018-02-24 07:36:50 +03:00
Nikolay Kim
25aabfb3e2 fix big ws frames 2018-02-23 10:45:33 +01:00
Nikolay Kim
aff43cc8b8 fix routes registration order 2018-02-22 05:48:18 -08:00
Nikolay Kim
4a9c1ae894 allow to use Connection for sending client request 2018-02-21 22:53:23 -08:00
Nikolay Kim
8f2d3a0a76 fix NormalizePath helper 2018-02-21 14:53:42 -08:00
Nikolay Kim
fd56e5dc82 do not use regset for route recognition 2018-02-21 14:31:22 -08:00
Nikolay Kim
5634e5794f more tests for NormalizePath helper 2018-02-20 13:03:21 -08:00
Nikolay Kim
187644e178 update logger doc string 2018-02-20 12:53:51 -08:00
Nikolay Kim
2374aa42ed set date header for client requests 2018-02-19 23:18:18 -08:00
Nikolay Kim
03912d2089 support client request's async body 2018-02-19 22:48:27 -08:00
Nikolay Kim
3f95cce9e8 allow to pass different binary data 2018-02-19 20:03:57 -08:00
Nikolay Kim
979cea03ac added TestRequest::set_payload() 2018-02-19 20:01:38 -08:00
Nikolay Kim
6ee14efbe2 optimize http message serialization 2018-02-19 17:21:04 -08:00
Nikolay Kim
4d81186059 escape router pattern re 2018-02-19 14:57:57 -08:00
Nikolay Kim
ddc82395e8 try to remove trailing slash for normalize path handler 2018-02-19 14:27:36 -08:00
Nikolay Kim
360ffbba68 clone router with httprequest 2018-02-19 14:26:51 -08:00
Nikolay Kim
f2f1798215 allow to send request using custom connector 2018-02-19 13:41:21 -08:00
Nikolay Kim
548f4e4d62 replace reqwest with actix::client 2018-02-19 13:18:18 -08:00
Nikolay Kim
cb70d5ec3d refactor http client 2018-02-19 03:11:11 -08:00
Nikolay Kim
edd114f6e4 allow to set default content encoding on application level 2018-02-18 22:23:17 -08:00
Nikolay Kim
816c6fb0e0 log 5xx responses as error 2018-02-18 09:57:57 -08:00
Nikolay Kim
3e3d3279b8 deregister server socket on shutdown 2018-02-16 09:42:15 -08:00
Nikolay Kim
8607c51bcf do not stop accept thread on error 2018-02-15 22:02:03 -08:00
Nikolay Kim
8f9ec5c23c fix doc test 2018-02-13 07:50:49 -08:00
Nikolay Kim
b1eec3131f use newer api 2018-02-12 22:56:47 -08:00
Nikolay Kim
a544034c06 use Recipient 2018-02-12 22:09:31 -08:00
Christopher Armstrong
4b8181476c
consistently use #[cause] and display causing errors (#73) 2018-02-12 23:55:44 -06:00
Nikolay Kim
eb041de36d update examples 2018-02-12 19:15:39 -08:00
Nikolay Kim
80285f2a32 fix doc test 2018-02-12 18:38:13 -08:00
Nikolay Kim
335ca8ff33 use new actix api 2018-02-12 16:08:04 -08:00
Nikolay Kim
720d8c36c1 update names 2018-02-12 12:45:08 -08:00
Nikolay Kim
8c1b5fa945 sync with latest actix 2018-02-12 12:17:30 -08:00
Nikolay Kim
30bdf9cb5e update actix api 2018-02-12 01:13:06 -08:00
Nikolay Kim
285c66e7d8 build docs for apln and tls features 2018-02-10 11:39:12 -08:00
Nikolay Kim
856055c6ca simplify HttpServer::start_tls() method 2018-02-10 11:34:54 -08:00
Nikolay Kim
e3081306da update doc string 2018-02-10 11:29:40 -08:00
Nikolay Kim
94c4053cb5 more HttpServer type simplification 2018-02-10 11:01:54 -08:00
Nikolay Kim
762961b0f4 simplify HttpServer type definition 2018-02-10 10:22:03 -08:00
Nikolay Kim
3109f9be62 special handling for upgraded pipeline 2018-02-10 00:05:20 -08:00
Nikolay Kim
0c98775b51 refactor h1 stream polling 2018-02-09 22:26:48 -08:00
Nikolay Kim
b4b5c78b51 optimize ws frame generation 2018-02-09 20:43:14 -08:00
Nikolay Kim
78da98a16d add wsload tool; optimize ws frame parser 2018-02-09 17:20:28 -08:00
Nikolay Kim
74377ef73d fix back pressure for h1 import stream 2018-02-09 16:20:10 -08:00
Nikolay Kim
73ed1342eb more actix compatibility 2018-02-08 17:13:56 -08:00
Nikolay Kim
bc6300be34 actix compatibility 2018-02-08 17:08:57 -08:00
Nikolay Kim
2faf3a5eb6 fix deprecation warnings, update actix 2018-02-08 17:00:22 -08:00
Christopher Armstrong
f8f99ec0c7
Disable signals in HttpServers started by the tests. (#69)
Something is wrong with signals on windows.
This change causes the unit tests to pass on Windows.
2018-02-08 14:55:47 -06:00
Nikolay Kim
93aa220e8d remove default impl for std error, it prevents use of Fail 2018-02-07 13:57:58 -08:00
Christopher Armstrong
81e4fb9353
Avoid using Path to calculate URIs, because it doesn't do the right thing on Windows (#67)
Redirecting to index files now always uses `/` instead of backslash on windows.
2018-02-07 15:31:09 -06:00
Christopher Armstrong
884ea02f5c
Allow returning failure::Error from handlers (#65)
This implements From<failure::Error> for Error (by way of `failure::Compat`)
and ResponseError for failure::Compat<T>.
2018-02-06 10:26:50 -06:00
Nikolay Kim
7ad66956b2 add HttpRequest::uri_mut(), allows to modify request uri 2018-02-03 08:31:32 -08:00
Nikolay Kim
eb713bd60e update actix version 2018-02-01 01:08:08 -08:00
Nikolay Kim
58f85658bd update actix 2018-01-31 12:57:02 -08:00
Nikolay Kim
7e9fbfca72 missing http codes 2018-01-31 12:34:58 -08:00
Alexander Andreev
a1b96b1cf4 return "chnked" value 2018-01-31 21:37:12 +03:00
Alexander Andreev
a565e71018 spelling check 2018-01-31 20:28:53 +03:00
Nikolay Kim
b698e3546b link to websocket example 2018-01-30 15:26:58 -08:00
Nikolay Kim
577f91206c added support for websocket testing 2018-01-30 15:13:33 -08:00
Nikolay Kim
76f9542df7 rename module 2018-01-30 13:04:52 -08:00
Nikolay Kim
9739168d48 fix limit usage for Request/Response Body future 2018-01-30 12:44:14 -08:00
Nikolay Kim
5cbaf3a1b8 add client ssl support 2018-01-30 11:17:17 -08:00
Nikolay Kim
a02e0dfab6 initial work on client connector 2018-01-29 23:01:20 -08:00
Nikolay Kim
5cc3bba5cc change ws client names 2018-01-29 15:45:37 -08:00
Nikolay Kim
b686f39d0b complete impl for client request and response 2018-01-29 14:44:25 -08:00
Nikolay Kim
6416a796c3 add ClientRequest and ClientRequestBuilder 2018-01-29 11:45:33 -08:00
Nikolay Kim
b6a394a113 added StaticFiles::inex_file config 2018-01-29 03:23:45 -08:00
Nikolay Kim
456fd1364a add handle method to contexts 2018-01-28 09:47:46 -08:00
Nikolay Kim
55b2fb7f77 update example 2018-01-28 01:04:58 -08:00
Nikolay Kim
7c7743c145 use right path 2018-01-27 22:52:17 -08:00
Nikolay Kim
5dd2e7523d basic websocket client 2018-01-27 22:03:03 -08:00
Nikolay Kim
4821d51167 fix actix compatibility 2018-01-27 11:15:03 -08:00
Nikolay Kim
d4bc3294a3 actix compatibility 2018-01-27 10:04:56 -08:00
Nikolay Kim
4abb769ee5 fix request json loader; mime_type() method 2018-01-25 21:50:28 -08:00
Nikolay Kim
e8e2ca1526 refactor alpn support; upgrade openssl to 0.10 2018-01-25 10:24:04 -08:00
Nikolay Kim
78967dea13 stop http context immediately 2018-01-24 20:17:14 -08:00
Nikolay Kim
58a5d493b7 re-eanble write backpressure for h1 connections 2018-01-24 20:12:49 -08:00
Nikolay Kim
c5341017cd fix typo 2018-01-23 15:39:53 -08:00
Nikolay Kim
f4873fcdee stop websocket context 2018-01-23 15:35:39 -08:00
Nikolay Kim
35efd017bb impl waiting for HttpContext 2018-01-23 09:42:04 -08:00
Nikolay Kim
e6ea177181 impl WebsocketContext::waiting() method 2018-01-22 16:55:50 -08:00
Nikolay Kim
1914a6a0d8 Always enable content encoding if encoding explicitly selected 2018-01-21 08:31:46 -08:00
Nikolay Kim
1cff4619e7 reduce threshold for content encoding 2018-01-21 08:12:32 -08:00
Nikolay Kim
7bb7adf89c relax InternalError constraints 2018-01-20 22:02:42 -08:00
Nikolay Kim
f5f78d79e6 update doc strings 2018-01-20 21:16:31 -08:00
Nikolay Kim
9180625dfd refactor helper error types 2018-01-20 21:11:46 -08:00
Nikolay Kim
7cf221f767 Log request processing errors 2018-01-20 20:12:24 -08:00
Nikolay Kim
98931a8623 test case for broken transfer encoding 2018-01-20 16:51:18 -08:00
Nikolay Kim
ae10a89014 use ws masking from tungstenite project 2018-01-20 16:47:34 -08:00
Nikolay Kim
71d534dadb CORS middleware: allowed_headers is defaulting to None #50 2018-01-20 16:36:57 -08:00
Nikolay Kim
867bb1d409 Merge branch 'master' of github.com:actix/actix-web 2018-01-20 16:12:51 -08:00
Nikolay Kim
91c44a1cf1 Fix HEAD requests handling 2018-01-20 16:12:38 -08:00
Alexander Andreev
58df8fa4b9 spelling check 2018-01-16 21:59:33 +03:00
Alexander Andreev
e1d9c3803b spelling check 2018-01-16 00:47:25 +03:00
Nikolay Kim
a7c24aace1 flush is useless 2018-01-14 19:28:34 -08:00
Nikolay Kim
89a89e7b18 refactor shared bytes api 2018-01-14 17:00:28 -08:00
Nikolay Kim
3425f7be40 fix tests 2018-01-14 14:58:58 -08:00
Nikolay Kim
7060f298b4 use more binary 2018-01-14 14:40:39 -08:00
Nikolay Kim
33dbe15760 use Binary for writer trait 2018-01-14 13:50:38 -08:00
Nikolay Kim
927a92fcac impl HttpHandler for Box<HttpHandler> and add helper method Application::boxed() #49 2018-01-13 18:58:17 -08:00
Nikolay Kim
93fdb596d4 Allow to explicitly disable chunked encoding 2018-01-13 16:17:33 -08:00
Nikolay Kim
305666067e Do not enable chunked encoding for HTTP/1.0 2018-01-13 12:46:43 -08:00
Nikolay Kim
b805d87ee7 no need for custom cookie module 2018-01-13 11:33:42 -08:00
Nikolay Kim
bc6bb9984f user guide spelling 2018-01-13 11:17:48 -08:00
belltoy
781282897a fix directory entry path 2018-01-13 08:37:27 +00:00
Nikolay Kim
c470e7a02b use flate2 released crate 2018-01-12 12:31:33 -08:00
Nikolay Kim
8a96e8fdd0 disable compression for static files 2018-01-11 23:49:53 -08:00
Nikolay Kim
e919ec485e cleanup http channel 2018-01-11 22:06:06 -08:00
Nikolay Kim
e482b88741 refactor http protocol selection procedure 2018-01-11 21:48:36 -08:00
Nikolay Kim
eb8052b936 fix cors tests 2018-01-11 20:20:50 -08:00
Nikolay Kim
dab918261c fix cors allowed header validation 2018-01-11 20:11:34 -08:00
Nikolay Kim
11342e4566 add link to gitter 2018-01-11 18:49:30 -08:00
Nikolay Kim
f7b895b53a add link to github 2018-01-11 18:47:34 -08:00
Nikolay Kim
ac89880c0a move encoding to server 2018-01-11 18:41:33 -08:00
Nikolay Kim
8a058efb4e move server protocol impl to submodule 2018-01-11 18:35:05 -08:00
Nikolay Kim
0707dfe5bb flush stream on drain 2018-01-11 16:22:27 -08:00
Nikolay Kim
0648ad6f33 fix implicit chunked encoding 2018-01-11 15:26:46 -08:00
Nikolay Kim
d152860fa7 add Cors::register method 2018-01-11 11:14:18 -08:00
Nikolay Kim
43f14224b1 properly enable encoding tests 2018-01-10 22:42:26 -08:00
Nikolay Kim
1a31554ee6 travis config 2018-01-10 21:02:28 -08:00
Nikolay Kim
49cdddf479 upgrade flate package 2018-01-10 20:28:06 -08:00
Nikolay Kim
aed90ed458 rename payload 2018-01-10 20:08:13 -08:00
Nikolay Kim
e0faf3f69c refactor pipeline impl 2018-01-10 16:45:57 -08:00
Nikolay Kim
f7807e43d8 cleanup Binary type; more cors tests 2018-01-10 15:28:33 -08:00
Nikolay Kim
fee54d1de0 tests for cors response 2018-01-10 14:56:45 -08:00
Nikolay Kim
1445cc7a2c test for cors 2018-01-10 14:21:48 -08:00
Nikolay Kim
16e9512457 better names for cors errors 2018-01-10 14:20:00 -08:00
Nikolay Kim
615db0d9d8 complete cors implementation 2018-01-10 13:41:33 -08:00
Nikolay Kim
3f3dcf413b move websocket code to submodule 2018-01-10 11:13:29 -08:00
Nikolay Kim
4b72a1b325 create custom WebsocketContext for websocket connection 2018-01-10 10:12:34 -08:00
Nikolay Kim
8aae2daafa update example 2018-01-10 07:55:25 -08:00
Nikolay Kim
d7f59ce481 add cors preflight request support 2018-01-09 23:55:42 -08:00
Nikolay Kim
ce78f17a79 refactor Middleware trait, use Result 2018-01-09 22:48:35 -08:00
Nikolay Kim
16310a5ebd initial work on cors middleware 2018-01-09 22:33:51 -08:00
Nikolay Kim
e8412672a2 add resource level middlewares support 2018-01-09 20:00:18 -08:00
Nikolay Kim
6c7dda495b add very simple http/2 test 2018-01-09 12:49:46 -08:00
Nikolay Kim
a159a9cd6e cleanup doc tests 2018-01-09 10:08:06 -08:00
Nikolay Kim
f90bc0caae do no stop on write_eof 2018-01-07 19:10:42 -08:00
Nikolay Kim
f802fe09e6 fix context poll 2018-01-07 17:13:49 -08:00
Nikolay Kim
71da72efdb use general context impl 2018-01-06 22:59:39 -08:00
Nikolay Kim
247c23c1ea no need for StreamHandler 2018-01-06 01:06:35 -08:00
Nikolay Kim
3ed9e872ad subscriber to os signals automatically 2018-01-05 16:32:36 -08:00
Nikolay Kim
5ff35f5b99 upgrade to actix 0.4 2018-01-05 13:30:21 -08:00
Nikolay Kim
20d5c61c11 set nodelay for streams 2018-01-04 09:32:47 -08:00
Nikolay Kim
91230afc44 fix time calculations 2018-01-04 09:32:33 -08:00
Nikolay Kim
afeffe4b19 encode returns result 2018-01-04 09:32:15 -08:00
Nikolay Kim
fdf7726831 update changelog 2018-01-03 23:59:12 -08:00
Nikolay Kim
9559f6a175 introduce IoStream trait for low level stream operations 2018-01-03 23:41:55 -08:00
Nikolay Kim
1f7aee23df shutdown io streams before exit 2018-01-03 22:43:44 -08:00
Nikolay Kim
e439d0546b * fix force_close
* shutdown io before exit

* fix response creation with body from pool
2018-01-03 18:21:34 -08:00
Nikolay Kim
8348c830e2 no need for mut ref 2018-01-03 10:57:57 -08:00
Nikolay Kim
ae084d1146 added helper future for reading request body 2018-01-03 09:23:58 -08:00
Nikolay Kim
88031b7fde remove debug prints 2018-01-03 09:00:22 -08:00
Nikolay Kim
70ea43b3c0 fix drain support for actor; make pattern more reusable 2018-01-02 23:43:17 -08:00
Nikolay Kim
3a59344ffb update h2 lib 2018-01-02 19:37:33 -08:00
Nikolay Kim
f0fdcc9936 handle application prefix for handlers; use handler for StaticFiles 2018-01-02 15:23:31 -08:00
Nikolay Kim
77ba1de305 flush encoder 2018-01-02 14:53:51 -08:00
Nikolay Kim
b49eadf7e5 fix content length serialization #33 2018-01-02 13:39:32 -08:00
Nikolay Kim
9040f588af allow to handle entire sub path 2018-01-02 13:09:02 -08:00
Nikolay Kim
cc38b30f7b refactor http actor usage 2017-12-31 17:26:32 -08:00
Nikolay Kim
967d3244d7 fix http/2 support 2017-12-31 13:22:11 -08:00
Nikolay Kim
6ea894547d better application handling, fix url_for method for routes with prefix 2017-12-29 14:04:13 -08:00
Nikolay Kim
491d43aa8c update tests 2017-12-29 11:49:36 -08:00
Nikolay Kim
1baead993a call poll_io recursevely aftre drain completion 2017-12-29 11:45:56 -08:00
Nikolay Kim
3d3e4dae9a refactor IntoHttpHandler trait 2017-12-29 11:33:04 -08:00
Nikolay Kim
1d195a2cf2 make Pipeline private 2017-12-29 09:16:50 -08:00
Nikolay Kim
d87fafb563 fix and refactor middleware runner 2017-12-29 01:01:31 -08:00
Nikolay Kim
308df19865 update readme 2017-12-28 16:27:08 -08:00
Nikolay Kim
538fea8027 add graceful shutdown system 2017-12-28 16:25:47 -08:00
Nikolay Kim
3f4898a6d1 add StopWorker message 2017-12-28 13:07:29 -08:00
Nikolay Kim
6a2bb9a473 split worker code to separate module 2017-12-28 12:38:37 -08:00
Nikolay Kim
783e19c1bf fix RequestSession impl for HttpRequest 2017-12-28 11:43:45 -08:00
Nikolay Kim
d80a0c9f94 add support for unix signals 2017-12-28 11:36:20 -08:00
Alban Minassian
27b0dfd761 set sessio name 2017-12-28 13:02:46 +01:00
Nikolay Kim
093d0bae40 Param ctor is private 2017-12-27 19:19:28 -08:00
Nikolay Kim
8941557da6 add parameter container iterator 2017-12-27 19:09:36 -08:00
Nikolay Kim
6bb893deab use Params object for query 2017-12-27 19:02:29 -08:00
Nikolay Kim
19e1c1b75b use Cow for Params type 2017-12-27 18:41:09 -08:00
Nikolay Kim
556de72932 add server spawn method 2017-12-27 17:49:10 -08:00
Nikolay Kim
4d741b4de5
Fix typos 2017-12-27 13:26:31 -08:00
Nikolay Kim
0589f2ee49 add server management commands 2017-12-27 12:58:32 -08:00
Nikolay Kim
da8aa8b988 use mio for accept loop 2017-12-27 11:22:27 -08:00
Nikolay Kim
183bcd38f8 modify unused_addr method; update websockt guide section 2017-12-26 20:52:21 -08:00
Nikolay Kim
3abd0db6b1 restore server start test 2017-12-26 20:07:31 -08:00
Nikolay Kim
29adc20581 rename module 2017-12-26 19:59:41 -08:00
Nikolay Kim
743235b8fd add unit test helper 2017-12-26 19:48:02 -08:00
Nikolay Kim
d3b7d2d6b3 allow to use application factory for test server 2017-12-26 16:47:55 -08:00
Nikolay Kim
f6510161b5 add simple TestServer for integrational tests cases 2017-12-26 16:35:00 -08:00
Nikolay Kim
e3b0f02794 fix type for disable feartures 2017-12-26 15:17:20 -08:00
Nikolay Kim
9521de5746 HttpServer::addrs() return all bound socket addresses 2017-12-26 14:45:38 -08:00
Nikolay Kim
dd3a2aa68a add HttpServer::server_hostname method 2017-12-26 14:36:03 -08:00
Nikolay Kim
cce9c68a10 add doc string 2017-12-26 12:46:27 -08:00
Nikolay Kim
cf8c2ca95e refactor Handler trait, use mut self 2017-12-26 09:00:45 -08:00
Nikolay Kim
ffb5742b71 fix tests 2017-12-25 19:42:55 -08:00
Nikolay Kim
5b65987f6a write response optimizations 2017-12-25 13:40:06 -08:00
Nikolay Kim
98b0e023f3 optimize payload detection 2017-12-25 07:31:12 -08:00
Nikolay Kim
f1e82ebc1e better connect handling 2017-12-24 16:15:40 -08:00
Nikolay Kim
ddd9c24bb2 optimize payload type detection 2017-12-24 14:29:19 -08:00
Nikolay Kim
9f9c75d832 simplify drain feature 2017-12-24 11:58:09 -08:00
Nikolay Kim
eaab28cd3b proper fix for compression 2017-12-21 12:57:59 -08:00
Nikolay Kim
c35d294611 fix compression 2017-12-21 12:54:18 -08:00
Nikolay Kim
18f3841783 update test 2017-12-20 23:36:52 -08:00
Nikolay Kim
bca1dd4f9e update doc strings 2017-12-20 23:19:21 -08:00
Nikolay Kim
0a68811dce cleanup more examples 2017-12-20 21:06:04 -08:00
Nikolay Kim
406d2c41e9 add doc string 2017-12-20 20:56:17 -08:00
Nikolay Kim
63ddc07ccb added JsonBody future 2017-12-20 20:30:54 -08:00
Nikolay Kim
33b2be3281 move json responder to separate module 2017-12-20 17:51:28 -08:00
Nikolay Kim
c36ad06332 more general Responder implementaiton for response future 2017-12-20 15:26:28 -08:00
Nikolay Kim
79f047f5be remove box from predicates 2017-12-20 13:23:50 -08:00
Nikolay Kim
813b56ebe5 make async handler future more generic 2017-12-20 12:51:39 -08:00
Nikolay Kim
7fc7d6e17a update guide 2017-12-19 22:36:06 -08:00
Nikolay Kim
626999bcc9 update doc strings 2017-12-19 16:09:19 -08:00
Nikolay Kim
64d867d9a1 update session guide section 2017-12-19 15:44:25 -08:00
Nikolay Kim
1596f4db73 refactor url encoded body parsing 2017-12-19 14:03:01 -08:00
Nikolay Kim
fa2a3bc55e make method private 2017-12-19 13:11:19 -08:00
Nikolay Kim
db7bd962cb fix some doc strings 2017-12-19 11:46:11 -08:00
Nikolay Kim
2bad99b645 better query() method impl; update doc strings 2017-12-19 11:34:51 -08:00
Nikolay Kim
e3f9345420 multipart field is stream of bytes 2017-12-19 09:55:49 -08:00
Nikolay Kim
790793f8a1 refactor multipart stream creation 2017-12-19 09:51:28 -08:00
Nikolay Kim
13cbfc877d simplify server start method 2017-12-19 09:08:36 -08:00
Nikolay Kim
4f6145e5c7 fix typos 2017-12-19 00:29:25 -08:00
Nikolay Kim
f3b853f224 refactor payload 2017-12-19 00:18:57 -08:00
Nikolay Kim
0cab873066 make payload sender public 2017-12-18 21:58:38 -08:00
Nikolay Kim
2124730e0a guide update 2017-12-18 18:56:58 -08:00
Nikolay Kim
9ed4159c0c update examples 2017-12-18 13:06:41 -08:00
Nikolay Kim
27d92f3a23 refactor server bind and start process 2017-12-17 12:35:04 -08:00
Nikolay Kim
b1f33e29ec simplify content-length calculation 2017-12-16 07:29:15 -08:00
Nikolay Kim
ed8bd3d6a3 h1 cleanups 2017-12-15 22:49:48 -08:00
Nikolay Kim
1daf50095a cleanup response 2017-12-15 20:00:12 -08:00
Nikolay Kim
a8b2f1b821 update tests 2017-12-15 18:49:11 -08:00
Nikolay Kim
1ddcce7b76 hide httpresponse box 2017-12-15 16:24:15 -08:00
Nikolay Kim
c3d5e4301a cleanup h1 parse 2017-12-15 13:10:12 -08:00
Nikolay Kim
4913e7d3c2 cleanup 2017-12-14 22:22:27 -08:00
Nikolay Kim
106f43e874 better SharedBytes usage for h2 2017-12-14 20:48:31 -08:00
Nikolay Kim
2b0994e448 update tests 2017-12-14 20:29:49 -08:00
Nikolay Kim
c37565cc4a various server optimizations 2017-12-14 19:34:31 -08:00
Nikolay Kim
b61c2a0cf0 handle keep-alive setting more efficient 2017-12-14 11:20:45 -08:00
Nikolay Kim
c98d320f8c rename FromRequest trait to Responder 2017-12-14 09:43:42 -08:00
Nikolay Kim
355f54efe2 update api docs 2017-12-13 23:35:21 -08:00
Nikolay Kim
8c1487f7f2 update tests 2017-12-13 23:09:35 -08:00
Nikolay Kim
4529efa948 rename module 2017-12-13 22:54:52 -08:00
Nikolay Kim
9d0a64ac98 remove unused file 2017-12-13 22:43:16 -08:00
Nikolay Kim
b7cde3f4a9 update guide 2017-12-13 22:36:28 -08:00
Nikolay Kim
408ddf0be1 add ssl guide ref 2017-12-13 21:56:30 -08:00
Nikolay Kim
c2751efa87 refactor keep-alive; update guide 2017-12-13 21:38:47 -08:00
Nikolay Kim
96f598f2c4 various optimizations 2017-12-13 16:44:35 -08:00
Nikolay Kim
81f8da03ae refactor http workers 2017-12-13 12:47:07 -08:00
Nikolay Kim
6b61041aec move tests 2017-12-13 11:16:26 -08:00
Nikolay Kim
d4187f682b various cleanups 2017-12-13 11:10:03 -08:00
Nikolay Kim
55204c829c update tests 2017-12-13 08:00:25 -08:00
Nikolay Kim
2e83c5924d cleanup and optimize some code 2017-12-12 21:32:58 -08:00
Nikolay Kim
ab6efd2421 handle http connections in different threads 2017-12-12 17:21:00 -08:00
Nikolay Kim
55818028cb state does not need to be Send 2017-12-12 08:51:16 -08:00
Nikolay Kim
e9aa67b75d http server accepts factory of HttpHandlers 2017-12-12 07:40:36 -08:00
Nikolay Kim
007b7ce62f unify route not found handling 2017-12-11 16:26:51 -08:00
Nikolay Kim
0f75d066f2 simplify Application creation; update url dispatch guide section 2017-12-11 14:16:29 -08:00
Nikolay Kim
0388a464ba tests for NormalizePath 2017-12-09 13:25:06 -08:00
Nikolay Kim
71bbe2a5dd update doc string for NormalizePath 2017-12-09 11:55:55 -08:00
Nikolay Kim
7addd2800d add NormalizePath handler 2017-12-09 11:39:13 -08:00
Nikolay Kim
273de2260d refactor pipeline 2017-12-09 05:54:04 -08:00
Nikolay Kim
b98ab2eebe use trait instead of pipeline 2017-12-09 04:33:40 -08:00
Nikolay Kim
4a40b026a4 more error wrappers 2017-12-08 15:52:46 -08:00
Nikolay Kim
a44f71d8c2 make ErrorBadRequest type useful 2017-12-08 15:25:37 -08:00
Nikolay Kim
9043e7286d tests for default predicates 2017-12-08 12:51:44 -08:00
Nikolay Kim
3e91b06241 fix static files 2017-12-08 12:29:28 -08:00
Nikolay Kim
774bfc0a86 use server settings for scheme and host values 2017-12-08 09:48:53 -08:00
Nikolay Kim
1293619096 set server settings to HttpHandler 2017-12-08 09:24:05 -08:00
Nikolay Kim
2192d14eff added ServerSettings 2017-12-07 22:54:44 -08:00
Nikolay Kim
b71ddf7b4c pass local addr to channel; use bitflags 2017-12-07 21:52:46 -08:00
Nikolay Kim
d595dd850e load cookies automatically 2017-12-07 18:00:20 -08:00
Nikolay Kim
0abb3863dc simplify api 2017-12-07 17:38:18 -08:00
Nikolay Kim
dff7618f35 rearrange exports 2017-12-07 16:40:29 -08:00
Nikolay Kim
968f5d39d6 added external resources; refactor route recognizer 2017-12-07 16:22:26 -08:00
Nikolay Kim
2a0d5db41a more tests 2017-12-06 18:39:13 -08:00
Nikolay Kim
4b03d03404 rearrange exports 2017-12-06 17:06:40 -08:00
Nikolay Kim
9ea0781aba fix test 2017-12-06 16:58:49 -08:00
Nikolay Kim
63502fa833 test for Router::has_route 2017-12-06 16:40:23 -08:00
Nikolay Kim
a18bd5dac0 add doc ref 2017-12-06 16:34:54 -08:00
Nikolay Kim
0dd27bd224 added HttpRequest::url_for 2017-12-06 16:26:27 -08:00
Nikolay Kim
8d52e2bbd9 tests for default resource 2017-12-06 13:02:53 -08:00
Nikolay Kim
c63f058647 simplify application creation 2017-12-06 11:00:39 -08:00
Nikolay Kim
87c7441f7d remove Applicaiton::route, resource is enough 2017-12-06 08:03:08 -08:00
Nikolay Kim
04ded5ba68 hide pkcs 2017-12-06 07:49:01 -08:00
Nikolay Kim
903b391e0a move ConnectionInfo to dev 2017-12-06 07:47:42 -08:00
Nikolay Kim
20af8822fd cleanup 2017-12-05 21:53:00 -08:00
Nikolay Kim
d7e65b6212 add ConnectionInfo tests 2017-12-05 21:41:30 -08:00
Nikolay Kim
c3de32c3b3 added ConnectionInfo 2017-12-05 17:09:15 -08:00
Nikolay Kim
d8b880e167 work on resource_path api 2017-12-05 13:31:06 -08:00
Nikolay Kim
86d7290f9e update tests 2017-12-05 11:43:41 -08:00
Nikolay Kim
a83d9b24ae extrat elements of path pattern 2017-12-05 11:31:35 -08:00
Nikolay Kim
3c9b6ea619 update guide 2017-12-04 20:38:38 -08:00
Nikolay Kim
fd6b243cd6 update examples 2017-12-04 16:32:31 -08:00
Nikolay Kim
f4e9fc7b6a rename async to a 2017-12-04 16:09:22 -08:00
Nikolay Kim
e332c1242f use Route for Applicaiton handlers 2017-12-04 14:53:40 -08:00
Nikolay Kim
f5d6179a34 renamed Route::handler to Route::f, added Route::h to register Handler 2017-12-04 14:07:53 -08:00
Nikolay Kim
a163e75318 drop tail path pattern 2017-12-04 13:34:55 -08:00
Nikolay Kim
3bf3738e65 introduce route predicates 2017-12-04 13:32:05 -08:00
Nikolay Kim
57fd35ffc1 added default headers middleware 2017-12-03 20:47:15 -08:00
Nikolay Kim
d35be02587 cleanup 2017-12-03 20:09:46 -08:00
Nikolay Kim
319e9bbd05 added Json response support 2017-12-03 18:51:52 -08:00
Nikolay Kim
5decff9154 added fs tests 2017-12-03 18:15:09 -08:00
Nikolay Kim
69f0c098e3 check show_index 2017-12-03 16:58:31 -08:00
Nikolay Kim
5abc46034a refactor static files 2017-12-03 16:57:25 -08:00
Nikolay Kim
7c6faaa8e0 add Item and Error to FromRequest trait 2017-12-03 14:22:04 -08:00
Nikolay Kim
6bc7d60f52 more default impls for FromRequest 2017-12-02 17:14:55 -08:00
Nikolay Kim
fb3185de94 rename module 2017-12-02 16:47:02 -08:00
Nikolay Kim
61744b68a1 introduce custom FromRequest traint for conversion into Reply 2017-12-02 16:37:21 -08:00
Nikolay Kim
187948ddd1 error response for io::Error 2017-12-02 14:58:22 -08:00
Nikolay Kim
29a26b3236 code cleanup 2017-12-02 12:14:16 -08:00
Nikolay Kim
0fc01c48d1 return bad request for param parse error 2017-12-02 11:03:41 -08:00
Nikolay Kim
ebfd3ac275 tests for PathBuf::from_param 2017-12-02 10:43:14 -08:00
Nikolay Kim
d8f27e95a6 added FromParam trait for path segment conversions, FramParam impl for PathBuf 2017-12-02 10:18:54 -08:00
Nikolay Kim
c3a0a4457a add appl builder async method; add async handler section 2017-12-01 21:58:19 -08:00
Nikolay Kim
f0c346f18c handler info 2017-12-01 21:29:22 -08:00
Nikolay Kim
186726fbad tests for Completed state 2017-12-01 19:57:34 -08:00
Nikolay Kim
97bed17fd2 test for completed pipeline state 2017-12-01 16:10:01 -08:00
Nikolay Kim
47645626c4 refactor pipeline 2017-12-01 15:45:15 -08:00
Nikolay Kim
9a1ba527c0 recognizer tests 2017-11-30 19:34:33 -08:00
Nikolay Kim
3fcd5f6935 use http::Uri for uri parsing 2017-11-30 19:01:25 -08:00
Nikolay Kim
7135c0163b simlify code 2017-11-30 18:27:27 -08:00
Nikolay Kim
f53f35f364 added tail pattern 2017-11-30 15:48:09 -08:00
Nikolay Kim
07cc017320 make Task private 2017-11-30 15:13:56 -08:00
Nikolay Kim
271a292ea5 no need to store disconnected state on task 2017-11-30 14:44:58 -08:00
Nikolay Kim
6e138bf373 refactor streaming responses 2017-11-30 14:42:20 -08:00
Nikolay Kim
a0bca2d4cf fix typo 2017-11-30 07:42:02 -08:00
Nikolay Kim
6c4fdf604b do not set content encoding header for upgraded connection 2017-11-29 19:40:27 -08:00
Nikolay Kim
e4f8551cba do not com press upgrade connection 2017-11-29 19:36:55 -08:00
Nikolay Kim
559b1c50a3 do not encode payload less that 1024 bytes 2017-11-29 19:18:37 -08:00
Nikolay Kim
d2eae3d5b3 simplify Handler trait 2017-11-29 15:10:45 -08:00
Nikolay Kim
991dd107b1 update ws doc 2017-11-29 14:12:27 -08:00
Nikolay Kim
acc2fff655 export and simplify HttpHandler trait 2017-11-29 13:53:52 -08:00
Nikolay Kim
427566b90d export Handler 2017-11-29 13:41:51 -08:00
Nikolay Kim
16ceb741b8 refactor RouteHandler trait 2017-11-29 13:26:55 -08:00
Nikolay Kim
6f833798c7 refactor http actor handling 2017-11-29 10:31:24 -08:00
Nikolay Kim
6177d86d97 refactor handler rtype handling 2017-11-29 09:17:00 -08:00
Nikolay Kim
e9bfab8012 add deref for payload item 2017-11-28 19:51:39 -08:00
Nikolay Kim
afeecea05f refactor reply handling 2017-11-28 19:49:17 -08:00
Nikolay Kim
987b275c3f add response test 2017-11-28 14:29:22 -08:00
Nikolay Kim
932e751240 add status code helper method for http response 2017-11-28 14:23:42 -08:00
Nikolay Kim
706e2a07de add helper converters into response 2017-11-28 13:52:53 -08:00
Nikolay Kim
b55d69b4c2 better handler result handling 2017-11-28 12:42:53 -08:00
Nikolay Kim
0bd8725426 make resource handler result more generic 2017-11-28 12:28:51 -08:00
Nikolay Kim
599f3c26e0 start working on guide 2017-11-27 16:41:37 -08:00
Nikolay Kim
b5a4f6f855 hellper method for json body 2017-11-27 10:39:47 -08:00
Nikolay Kim
170d3163f3 better export naming 2017-11-26 22:53:28 -08:00
Nikolay Kim
0519056199 consistent naming 2017-11-26 22:31:29 -08:00
Nikolay Kim
45433f71e5 impl Default trait for HttpRequest 2017-11-26 22:20:28 -08:00
Nikolay Kim
b62b303fdb remove unneeded directives 2017-11-26 22:11:51 -08:00
Nikolay Kim
8e80fed2af added urlencoded errors 2017-11-26 22:00:25 -08:00
Nikolay Kim
fdafb0c848 simplify middleware api; fix examples 2017-11-26 21:47:33 -08:00
Nikolay Kim
5a3b6638a7 move state to request object 2017-11-26 21:18:38 -08:00
Nikolay Kim
8e0a7f44d4 pass request by value 2017-11-26 20:34:20 -08:00
Nikolay Kim
eb7f48a1c6 include payload into request 2017-11-26 19:00:57 -08:00
Nikolay Kim
32483735ba cookie session implementation 2017-11-26 17:34:11 -08:00
Nikolay Kim
53ce186294 cleanup pipeline 2017-11-25 12:05:27 -08:00
Nikolay Kim
37c1e78c7a added helper Task::error method 2017-11-25 10:52:43 -08:00