1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-23 16:21:06 +01:00
Commit Graph

294 Commits

Author SHA1 Message Date
Rob Ede
2d3a0d6038
json method receives plain serialize (#2052) 2021-03-07 22:11:39 +00:00
Rob Ede
cd652dca75
refactor websocket key hashing (#2035) 2021-02-28 19:55:34 +00:00
fakeshadow
c065729468
rework client connection pool (#1994) 2021-02-16 08:27:14 +00:00
Rob Ede
3279070f9f
optional cookies features (#1981) 2021-02-13 15:08:43 +00:00
Rob Ede
ea5ce3befb
prepare actix-http 3.0.0-beta.3 release 2021-02-10 18:36:14 +00:00
Rob Ede
a290e58982
prepare beta 2 release set (#1975) 2021-02-10 12:10:03 +00:00
Rob Ede
949d14ae2b
clean up header map (#1964) 2021-02-09 22:59:17 +00:00
fakeshadow
519d7f2b8a
add trust-dns optional feature for actix-http and awc (#1969) 2021-02-09 10:41:20 +00:00
fakeshadow
41bc04b1c4
Use immutable reference of service state. Update awc dns resolver. (#1905) 2021-02-07 01:00:40 +00:00
fakeshadow
20cf0094e5
fix master branch build. change web::block output type. (#1957) 2021-02-06 16:23:59 +00:00
Logan Magee
0c8196f8b0
Remove HttpResponseBuilder::json2() (#1903)
It's not necessary to keep both json() and json2() around since the
former reduces the ownership of its parameter to a borrow only to pass
the reference to the latter. Users can instead borrow themselves when
passing an owned value: there doesn't need to be two separate functions.

This change also makes HttpResponseBuilder::json() take T: Deref so it
can accept both references and web extractors like web::Json.
2021-01-18 12:14:29 +00:00
Rob Ede
ee10148444
revive commented out tests (#1912) 2021-01-17 05:19:32 +00:00
Rob Ede
f976150b67
return option item from Extensions::insert (#1904) 2021-01-15 04:22:42 +00:00
Rob Ede
b1dd8d28bc
response header rework (#1869) 2021-01-15 02:11:10 +00:00
fakeshadow
fe392abeb4
remove actix-threadpool.use actix_rt::task::spawn_blocking (#1878) 2021-01-09 16:04:19 +00:00
Rob Ede
6575ee93f2
big clean up and docs improvmenet of types mod (#1894) 2021-01-09 13:17:19 +00:00
Rob Ede
c09186a2c0
prepare v4 beta releases (#1881) 2021-01-07 20:02:08 +00:00
Rob Ede
00ba8d5549
add http3 variant to protocol enum 2021-01-06 18:58:24 +00:00
Rob Ede
7d632d0b7b
use ByteString as container for websocket text message (#1864) 2021-01-04 11:27:32 +00:00
fakeshadow
32de9f8840
Tokio 1.0 (#1813)
Co-authored-by: Rob Ede <robjtede@icloud.com>
2021-01-03 23:47:04 +00:00
Rob Ede
a1b00b2cd0
change unreleased year 2021-01-02 00:12:18 +00:00
Rob Ede
093d3a6c59
remove deprecated on_connect methods (#1857) 2020-12-27 23:23:30 +00:00
Logan Magee
4dccd092f3
Bump rand from 0.7.x to 0.8.x (#1845) 2020-12-22 23:45:31 +00:00
Rob Ede
efc317d3b0
prepare actix-http and awc releases 2020-11-25 00:07:56 +00:00
Rob Ede
5af46775b8
refactor quality and use TryFrom instead of custom trait (#1797) 2020-11-24 11:37:05 +00:00
Rob Ede
70f4747a23
add method for getting accept type preference (#1793) 2020-11-24 10:08:57 +00:00
Yuki Okushi
4bfd5c2781
Upgrade serde_urlencoded to 0.7 (#1773) 2020-11-06 01:36:15 +09:00
Rob Ede
61b65aa64a
add common 1xx http response builders (#1768)
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-11-02 18:23:18 +09:00
Sebastian Mayr
5468c3c410
Drop content length headers from 101 responses (#1767)
Co-authored-by: Sebastian Mayr <smayr@atlassian.com>
2020-11-02 17:44:14 +09:00
Rob Ede
798d744eef
prepare http release 2.1.0 2020-10-30 02:19:56 +00:00
Rob Ede
4cb833616a
deprecate builder if-x methods (#1760) 2020-10-30 02:10:05 +00:00
Rob Ede
9963a5ef54
expose on_connect v2 (#1754)
Co-authored-by: Mikail Bagishov <bagishov.mikail@yandex.ru>
2020-10-30 02:03:26 +00:00
ghizzo01
20078fe603
Bump pin-project to 1.0 (#1733) 2020-10-25 19:41:44 +09:00
ghizzo01
f92742bdac
Bump base64 to 0.13 (#1744) 2020-10-19 18:24:22 +01:00
Rob Ede
64a2c13cdf
the big three point oh (#1668) 2020-09-11 13:50:10 +01:00
Rob Ede
059d1671d7
prepare release beta 4 (#1659) 2020-09-09 22:14:11 +01:00
Rob Ede
8497b5f490
integrate with updated actix-{codec, utils} (#1634) 2020-08-24 10:13:35 +01:00
Yuki Okushi
ff2ca0f420
Update rustls to 0.18 (#1637) 2020-08-18 00:28:39 +09:00
Yuki Okushi
aa2bd6fbfb
http: Bump up to 2.0.0-beta.3 (#1630) 2020-08-14 19:42:14 +09:00
fakeshadow
160995b8d4
fix awc pool leak (#1626) 2020-08-09 21:49:43 +01:00
Rob Ede
cf1c8abe62
prepare release http & awc (#1617) 2020-07-22 01:13:10 +01:00
masnagam
701bdacfa2
Fix illegal chunked encoding (#1615)
Co-authored-by: Rob Ede <robjtede@icloud.com>
2020-07-21 17:24:56 +01:00
Rob Ede
6dc47c4093
fix soundness concern in h1 decoder (#1614)
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-07-21 16:25:33 +01:00
Rob Ede
327e472e44
prepare http-2.0.0-beta.1 release (#1596) 2020-07-13 15:35:30 +01:00
Patrick Tescher
e10eb648d9
Fix leaks with actix_http's client (#1580) 2020-07-10 22:35:22 +01:00
Yuki Okushi
deab634247
actix-http: Update sha-1 to 0.9 (#1586) 2020-07-03 01:08:24 +01:00
Rob Ede
eb0eda69c6
migrate cookie handling to cookie crate (#1558) 2020-06-19 14:34:14 +01:00
Yuki Okushi
48fa78e182
http: Bump up to 2.0.0-alpha.4 2020-05-21 15:22:07 +09:00
Yuki Okushi
8391427905
http: Update base64 to 0.12 2020-05-21 09:51:32 +09:00
Omid Rad
32a37b7282
Remove content_length from ResponseBuilder (#1491)
* Remove content_length since it'll be overwritten by the response body. FIXES #1439

* Add setting of Content-Length to the no_chunking function

* Add changes and migration documentations

* Update MIGRATION.md

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>

Co-authored-by: Rob Ede <robjtede@icloud.com>
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-05-19 07:46:31 +09:00
Rob Ede
7e8ea44d5c
remove needless BodySize::Sized64 variant 2020-05-18 00:42:51 +01:00
Rob Ede
996f1d7eae
bump msrv in ci and readme 2020-05-13 01:57:37 +01:00
Takeru Sato
63864ecf9e
support parsing of SameSite=None (#1503) 2020-05-12 17:48:35 +01:00
Yuki Okushi
0bc4a5e703
http: Bump up to 2.0.0-alpha.3 2020-05-08 02:35:45 +09:00
Huston Bokinsky
b047413b39
Small ws codec fix (#1465)
* Small ws codec fix

* Update actix-http/Changes.md

Co-authored-by: Huston Bokinsky <huston@deepgram.com>
2020-04-29 11:13:09 +09:00
Yuki Okushi
54619cb680
actix-http: Remove failure support (#1449) 2020-04-16 06:54:34 +09:00
Otavio Salvador
146ae4da18 Implement std::error::Error for our custom errors
For allowing a more ergonomic use and better integration on the
ecosystem, this adds the `std::error::Error` `impl` for our custom
errors.

We intent to drop this hand made code once `derive_more` finishes the
addition of the Error derive support[1]. Until that is available, we
need to live with that.

1. https://github.com/JelteF/derive_more/issues/92

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2020-03-18 00:22:18 -03:00
Yuki Okushi
7172885beb
Update changelog 2020-03-08 00:43:17 +09:00
Maxim Vorobjov
10e3e72595
Http2 client configuration to improve performance (#1394)
* add defaults for http2 client configuration

* fix spaces

* Add changes text for extended H2 defaults buffers

* client: configurable H2 window sizes and max_http_version

* add H2 window size configuration and max_http_version to awc::ClientBuilder

* add awc::ClientBuilder H2 window sizes and max_http_version

* add test for H2 window size settings

* cleanup comment

* Apply code review fixes

* Code review fix for awc ClientBuilder

* Remove unnecessary comments on code review

* pin quote version to resolve build issue

* max_http_version to accept http::Version

* revert fix for quote broken build
2020-03-07 11:09:31 +09:00
Yuki Okushi
9d661dc4f3 Update changelog 2020-03-04 15:20:14 +09:00
Yuki Okushi
0173f99726 Update changelog 2020-02-27 12:39:04 +09:00
Maksym Vorobiov
9d04b250f9 This is a squashed commit:
- Convert MessageBody to accept Pin in poll_next

- add CHANGES and increase versions aligned to semver

- update crates to accomodate MessageBody Pin change

- fix tests and dependencies
2020-02-27 09:37:05 +09:00
Maxim Vorobjov
48ef4d7a26
Add actix-http support for actix error messages (#1379)
* Moved actix-http for actix from actix crate

* remove resolver feature

* renamed actix feature to actor

* fixed doc attr for actors, add documentation
2020-02-27 09:34:49 +09:00
Yuki Okushi
c8ccc69b93 actix-http: update time to 0.2.7 2020-02-23 07:09:00 +09:00
kevinpoitra
e634e64847 Upgrade time to 0.2.5 (#1254)
* Use `OffsetDateTime` instead of `PrimitiveDateTime`

* Parse time strings with `PrimitiveDateTime::parse` instead of `OffsetDateTime::parse`

* Remove unused `time` dependency from actix-multipart

* Fix a few errors with time related tests from the `time` upgrade

* Implement logic to convert a RFC 850 two-digit year into a full length year, and organize time parsing related functions

* Upgrade `time` to 0.2.2

* Correctly parse C's asctime time format using time 0.2's new format patterns

* Update CHANGES.md

* Use `time` without any of its deprecated functions

* Enforce a UTC time offset when converting an `OffsetDateTime` into a Header value

* Use the more readable version of `Duration::seconds(0)`, `Duration::zero()`

* Remove unneeded conversion of time::Duration to std::time::Duration

* Use `OffsetDateTime::as_seconds_f64` instead of manually calculating the amount of seconds from nanoseconds

* Replace a few additional instances of `Duration::seconds(0)` with `Duration::zero()`

* Truncate any nanoseconds from a supplied `Duration` within `Cookie::set_max_age` to ensure two Cookies with the same amount whole seconds equate to one another

* Fix the actix-http:🍪:do_not_panic_on_large_max_ages test

* Convert `Cookie::max_age` and `Cookie::expires` examples to `time` 0.2

Mainly minor  changes. Type inference can be used alongside the new
`time::parse` method, such that the type doesn't need to be specified.
This will be useful if a refactoring takes place that changes the type.
There are also new macros, which are used where possible.

One change that is not immediately obvious, in `HttpDate`, there was an
unnecessary conditional. As the time crate allows for negative durations
(and can perform arithmetic with such), the if/else can be removed
entirely.

Time v0.2.3 also has some bug fixes, which is why I am not using a more
general v0.2 in Cargo.toml.

v0.2.3 has been yanked, as it was backwards imcompatible. This version
reverts the breaking change, while still supporting rustc back to
1.34.0.

* Add missing `time::offset` macro import

* Fix type confusion when using `time::parse` followed by `using_offset`

* Update `time` to 0.2.5

* Update CHANGES.md

Co-authored-by: Jacob Pratt <the.z.cuber@gmail.com>
2020-01-28 20:44:22 +09:00
Rob Ede
a3287948d1 allow explicit SameSite=None cookies (#1282)
fixes #1035
2020-01-23 10:08:23 +09:00
Nikolay Kim
1d12ba9d5f Replace brotli with brotli2 #1224 2019-12-20 13:50:07 +06:00
Nikolay Kim
8c54054844 Use .advance() intead of .split_to() 2019-12-19 09:56:14 +06:00
Rajasekharan Vengalil
3b860ebdc7 Fix poll_ready call for WebSockets upgrade (#1219)
* Fix poll_ready call for WebSockets upgrade

* Poll upgrade service from H1ServiceHandler too
2019-12-17 13:34:25 +06:00
Nikolay Kim
c1deaaeb2f cleanup imports 2019-12-13 11:24:57 +06:00
Nikolay Kim
fa07415721 Replace flate2-xxx features with compress 2019-12-12 15:08:08 +06:00
Nikolay Kim
b4b3350b3e Add websockets continuation frame support 2019-12-12 14:06:54 +06:00
Nikolay Kim
5132257b0d Fix buffer remaining capacity calcualtion 2019-12-09 21:55:22 +06:00
Nikolay Kim
0c1f5f9edc Check Upgrade service readiness before calling it 2019-12-09 17:40:15 +06:00
Nikolay Kim
a3ce371312 ws ping and pong uses bytes #1049 2019-12-09 07:01:22 +06:00
Nikolay Kim
b92eafb839 prepare actix-http release 2019-12-08 20:15:51 +06:00
Nikolay Kim
7ec5ca88a1 update changes 2019-12-07 22:01:55 +06:00
Nikolay Kim
0ba125444a Add impl ResponseBuilder for Error 2019-12-07 21:41:34 +06:00
Nikolay Kim
1729a52f8b prepare alpha.3 release 2019-12-07 13:00:03 +06:00
Nikolay Kim
885ff7396e prepare actox-http release 2019-11-06 10:35:13 -08:00
SuperHacker-liuan
f089cf185b Let ResponseError render w/ 'text/plain; charset=utf-8' header (#1118) (#1119)
* Let ResponseError render w/ 'text/plain; charset=utf-8' header (#1118)

Trait ResponseError originally render Error messages with header
`text/plain` , which causes browsers (i.e. Firefox 70.0) with
Non-English locale unable to render UTF-8 responses with non-English
characters correctly. i.e. emoji.

This fix solved this problem by specifying the charset of `text/plain`
as utf-8, which is the default charset in rust.

Before actix-web consider to support other charsets, this hotfix is
 enough.

Test case:

fn test() -> Result<String, actix_web::Error> {
    Err(actix_web::error::ErrorForbidden("😋test"))
}

* Update actix-http/CHANGES.md for #1118
2019-10-07 10:56:24 +06:00
Nikolay Kim
5169d306ae update ConnectionInfo.remote() doc string 2019-09-27 07:03:12 +06:00
Sarfaraz Nawaz
aa39b8ca6f Add support for serde_json::Value to be passed as argument to ResponseBuilder.body() (#1096)
* Add support for serde_json::Value to be passed as argument to ResponseBuilder.body()

* Update actix-http/CHANGES.md
2019-09-25 09:33:52 +06:00
nWacky
7c9f9afc46 Add ability to use Infallible as HttpResponse error type (#1093)
* Add `std::convert::Infallible` implementantion for `ResponseError`

* Add from `std::convert::Infallible` to `Error`

* Remove `ResponseError` implementantion for `Infallible`

* Remove useless docs

* Better comment

* Update changelog

* Update actix_http::changelog
2019-09-17 06:57:38 +06:00
Nikolay Kim
a32573bb58 Allow to re-construct ServiceRequest from HttpRequest and Payload #1088 2019-09-13 11:56:24 +06:00
Nikolay Kim
043f763c51 prepare actix-http release 2019-09-11 20:07:39 +06:00
Dmitry Pypin
8873e9b39e Added FrozenClientRequest for easier retrying HTTP calls (#1064)
* Initial commit

* Added extra_headers

* Added freeze() method to ClientRequest which produces a 'read-only' copy of a request suitable for retrying the send operation

* Additional methods for FrozenClientRequest

* Fix

* Increased crates versions

* Fixed a unit test. Added one more unit test.

* Added RequestHeaderWrapper

* Small fixes

* Renamed RequestHeadWrapper->RequestHeadType

* Updated CHANGES.md files

* Small fix

* Small changes

* Removed *_extra methods from Connection trait

* Added FrozenSendBuilder

* Added FrozenSendBuilder

* Minor fix

* Replaced impl Future with concrete Future implementation

* Small renaming

* Renamed Send->SendBody
2019-09-10 10:29:32 +06:00
Nikolay Kim
63ddd30ee4 on_connect result isnt added to request extensions for http2 requests #1009 2019-09-01 13:15:02 +06:00
Nikolay Kim
55179d6ab2 update dependencies 2019-08-13 10:48:11 -07:00
Armin Ronacher
192dfff680 prepare actix-http 0.2.9 release 2019-08-13 15:20:29 +02:00
Lukas Lueg
b70de5b991 Update CHANGES.md 2019-08-07 16:43:03 +02:00
Nikolay Kim
0d15861e23 prepare actix-http release 2019-08-01 15:26:30 -07:00
Marat Safin
cb19ebfe0c add rustls support for actix-http and awc (#998)
* add rustls support for actix-http and awc

* fix features conflict

* remove unnecessary duplication

* test server with rust-tls

* fix

* test rustls

* awc rustls test

* format

* tests

* fix dependencies

* fixes and add changes

* remove test-server and Cargo.toml dev-dependencies changes

* cargo fmt
2019-07-31 13:02:56 -07:00
Nikolay Kim
e9b4aa205f Merge branch 'master' of github.com:actix/actix-web 2019-07-30 08:00:57 -07:00
Nikolay Kim
7674f1173c fix awc client panic #1016 2019-07-30 08:00:46 -07:00
Sven-Hendrik Haase
511026cab0 Allow HeaderMap to be cloned (#1014)
* Allow HeaderMap to be cloned

* Add entry to changelog
2019-07-29 08:11:23 +04:00
Nikolay Kim
f3751d83f8 Modify response body only if encoder is not None #997 2019-07-22 11:35:00 +06:00
Nikolay Kim
9c3789cbd0 revert DateServiceInner changes 2019-07-18 17:37:41 +06:00
Nikolay Kim
baaa7b3fbb Replace ClonableService with local copy 2019-07-17 13:55:44 +06:00
messense
dbab55dd6b Bump rand crate version to 0.7 (#951) 2019-07-01 09:37:03 +06:00
Nikolay Kim
d286ccb4f5 Add on-connect callback #946 2019-06-28 14:34:26 +06:00
Nikolay Kim
cac162aed7 update actix-http changes 2019-06-28 12:34:43 +06:00
messense
313ac48765 Use encoding_rs crate instead of unmaintained encoding crate (#922)
* Use encoding_rs crate instead of unmaintained encoding crate

* Update changelog
2019-06-18 12:43:25 +06:00
Nikolay Kim
7c0f570845 Do not compress NoContent (204) responses #918 2019-06-16 21:54:17 +06:00
Nikolay Kim
b1cfbdcf7a prepare actix-http release 2019-06-02 13:05:22 +06:00
Nikolay Kim
666756bfbe body helpers 2019-06-01 17:57:25 +06:00
Nikolay Kim
21418c7414 prep actix-http release 2019-05-29 16:15:12 -07:00
Nikolay Kim
1eb89b8375 remove debug prints 2019-05-25 03:16:53 -07:00
Nikolay Kim
7f12b754e9 Handle socket read disconnect 2019-05-25 03:07:40 -07:00
Nikolay Kim
beae9ca0f7 update changes 2019-05-12 09:57:16 -07:00
Nikolay Kim
07b9707ca1 prepare actix-http release 2019-05-12 09:56:55 -07:00
Nikolay Kim
df08baf67f update actix-net dependencies 2019-05-12 08:34:51 -07:00
Nikolay Kim
3d1af19080 prepare actix-http release 2019-05-04 19:51:13 -07:00
Nikolay Kim
fc19ce41c4 Clean up response extensions in response pool #817 2019-05-03 15:26:34 -07:00
Nikolay Kim
2bc937f6c3 prepare release 2019-04-24 12:50:44 -07:00
Nikolay Kim
f429d3319f Read until eof for http/1.0 responses #771 2019-04-24 11:57:40 -07:00
Nikolay Kim
2e19f572ee add tests for camel case headers rendering 2019-04-24 11:27:57 -07:00
Nikolay Kim
d2b0afd859 Fix http client pool and wait queue management 2019-04-23 14:57:03 -07:00
Nikolay Kim
5d531989e7 Fix BorrowMutError panic in client connector #793 2019-04-23 09:42:19 -07:00
Nikolay Kim
fc9b14a933 allow to specify server address for http and ws requests 2019-04-19 18:03:44 -07:00
Nikolay Kim
7292d0b696 drop chrono and use i64 for max age 2019-04-19 17:23:17 -07:00
Nikolay Kim
3744957804 actix_http::encoding always available 2019-04-16 10:27:58 -07:00
Nikolay Kim
a116c4c2c7 Expose peer addr via Request::peer_addr() and RequestHead::peer_addr 2019-04-16 09:54:02 -07:00
Nikolay Kim
1eebd47072 fix warnings 2019-04-14 21:00:16 -07:00
Nikolay Kim
002c41a7ca update trust-dns 2019-04-14 20:45:44 -07:00
Nikolay Kim
1f2b15397d prepare alpha5 release 2019-04-12 14:00:45 -07:00
Nikolay Kim
d115b3b3ed ws verifyciation takes RequestHead; add SendError utility service 2019-04-11 14:00:32 -07:00
Nikolay Kim
9bb40c249f add h1::SendResponse future; renamed to MessageBody::size 2019-04-10 12:24:17 -07:00
Nikolay Kim
561f83d044 add upgrade service support to h1 dispatcher 2019-04-08 17:51:14 -07:00
Nikolay Kim
53da55aa3c alpha4 release 2019-04-07 23:42:05 -07:00
Nikolay Kim
1f5c0f50f9 Add minimal std::error::Error impl for Error 2019-04-04 13:23:38 -07:00
Nikolay Kim
d8bc66a18e Use thread pool for response body comression 2019-04-04 13:17:55 -07:00
Nikolay Kim
1e2bd68e83 Render error and return as response body 2019-04-03 19:55:19 -07:00
Nikolay Kim
dfa0abf5a5 Export IntoHeaderValue 2019-04-03 12:44:47 -07:00
Nikolay Kim
e738361e09 move multipart support to separate crate 2019-04-03 12:28:58 -07:00
Nikolay Kim
f56072954b remove PayloadBuffer 2019-04-03 03:20:20 -07:00
Nikolay Kim
442f5057dd alpha.3 release 2019-04-02 21:49:31 -07:00
Nikolay Kim
51d5006ccf Detect socket disconnection during protocol selection 2019-04-02 20:50:25 -07:00
Nikolay Kim
c27fbdc35f Preallocate read buffer for h1 codec, #749 2019-04-02 10:19:56 -07:00
Nikolay Kim
96fd61f3d5 rust 1.31.0 compatibility 2019-04-01 10:26:09 -07:00
Nikolay Kim
3220777ff9 Added ws::Message::Nop, no-op websockets message 2019-03-29 18:22:49 -07:00
Nikolay Kim
3b897da8e2 Do not use thread pool for decomression if chunk size is smaller than 2048 2019-03-28 21:15:26 -07:00
Nikolay Kim
9cca86e60d prepear actix-http release 2019-03-28 12:45:41 -07:00
Nikolay Kim
c7ad677804 Merge actix-http project 2019-03-26 11:54:35 -07:00