Commit Graph

3179 Commits

Author SHA1 Message Date
Huston Bokinsky 9d7b6f401d Hide continuation frames from application layer.
This commit asserts that continuation frames are an implementation
detail of the websocket layer, and should remain hidden from the
application layer.  That is:
  - a codec should write only frames to the wire, and read only frames from the wire
  - when sending messages, the websocket implementation should break large
    text and binary messages into continuation frames -- the application should
    not have to be aware of this.
  - when receiving messages, the websocket implementation should reconstitute
    continuation frames into their original messages -- the application should
    not have to handle this.
  - the application should only have to send and receive complete websocket messages

Here, the reconstitution of continuation frames into their original messages is
done by the Stream implementation of actix_web_actors::ws::WsStream, by adding
a continuation frame buffer and not issuing a Poll::Ready(Some(Ok)) result until
a complete message has been buffered.  A test in actix_web_actors::tests::test_ws.rs
checks this.

The breaking of large message payloads into sequential continuation frames is
done by the addition of an actix_http::ws::frame_iters module, which introduces
two structs ContinuationBins and ContinuationTexts.  These are iterators over
either single Frame::Binary or Frame::Text frames, if the payloads are small,
or over sequences of Frame::Continuation's with appropriate Items FirstBinary/FirstText,
Continue, and Last.  New tests in actix_http::ws::frame_iters verify this
functionality.
2020-04-19 22:32:28 -07:00
Yuki Okushi 54619cb680
actix-http: Remove `failure` support (#1449) 2020-04-16 06:54:34 +09:00
Yuki Okushi 5b36381cb0
Merge pull request #1452 from actix/fix/default-service-data
set data container on default service calls
2020-04-16 06:01:56 +09:00
Rob Ede 45e2e40140
set data container on default service calls
closes #1450
2020-04-14 02:33:19 +01:00
Yuki Okushi df3f722589
Merge pull request #1451 from actix/cache
Remove cache config from GHA workflows
2020-04-13 06:06:45 +09:00
Yuki Okushi e7ba871bbf
Remove cache config from GHA workflows 2020-04-13 03:42:44 +09:00
Yuki Okushi ebc2e67015
Merge pull request #1442 from JohnTitor/workspace-doc
Deploy all the workspace crates' docs
2020-04-09 00:48:08 +09:00
Yuki Okushi 74ddc852c8
Tweak README 2020-04-08 04:48:01 +09:00
Yuki Okushi dfaa330a94
Deploy all the workspace crates' docs 2020-04-08 04:42:38 +09:00
Tore Pettersen 0ad02ee0e0
Add convenience functions for testing (#1401)
* Add convenience functions for testing

* Fix remarks from PR and add tests

* Add unpin to read_json_body

* Update changelog
2020-04-06 04:12:44 +09:00
Stephen Eckels aaff68bf05
Change NormalizePath to append trailing slash (#1433)
* Change NormalizePath to append trailing slash

* add tests

* Update CHANGES.md

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-04-05 03:26:40 +09:00
Yuki Okushi fcb1dec235
Merge pull request #1431 from OSSystems/topic/explicit-features-requirements
Add explicit feature requirements for examples and tests
2020-03-28 10:58:00 +09:00
Otavio Salvador 7b7daa75a4 Add explicit feature requirements for examples and tests
This allow us to build 'actix-web' without default features and run all
tests.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2020-03-25 23:49:24 -03:00
Ivan Tham 2067331884
Refactor actix-codegen duplicate code (#1423)
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-03-20 04:40:42 +09:00
Yuki Okushi bf630d9475
Merge pull request #1422 from OSSystems/topic/impl-error-more-types
Implement `std::error::Error` for our custom errors
2020-03-19 05:05:57 +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 52c5755d56
Merge pull request #1421 from actix/JohnTitor-patch-1
Upload coverage on PRs
2020-03-18 06:16:41 +09:00
Yuki Okushi 5548c57a09
Upload coverage on PRs 2020-03-18 05:04:30 +09:00
Stig Johan Berggren 0d958fabd7
📝 Improve the code example for JsonConfig (#1418)
* 📝 Improve the code example for JsonConfig

* Remove a redundant comment
2020-03-17 08:23:54 +09:00
Oleg Nosov c67e4c1fe8
Refactored macros (#1333)
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-03-15 07:23:28 +09:00
Yuki Okushi 4875dfbec7
Merge pull request #1416 from JohnTitor/fix-doc
Fix `read_body` doc
2020-03-13 07:06:57 +09:00
Yuki Okushi d602a7e386
Fix `read_body` doc 2020-03-13 05:52:58 +09:00
Yuki Okushi 9f196fe5a5
Merge pull request #1413 from OSSystems/topic/fix-warnings
Fix clippy warnings
2020-03-12 16:24:44 +09:00
Yuki Okushi e4adcd1935
Merge pull request #1411 from JohnTitor/patch
Clean-up metadata
2020-03-12 16:21:34 +09:00
Otavio Salvador 7e0d898d5a Fix clippy warnings
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2020-03-12 00:52:21 -03:00
Yuki Okushi 51518721e5
Add notes to READMEs 2020-03-12 07:57:38 +09:00
Yuki Okushi c02d3e205b
Clean-up metadata 2020-03-12 07:57:20 +09:00
Yuki Okushi a253d7d3ce
Merge pull request #1410 from JohnTitor/new-web
Release actix-web 3.0.0-alpha.1
2020-03-12 05:12:54 +09:00
Yuki Okushi 0152cedc5d
Update changelog 2020-03-12 03:24:15 +09:00
Yuki Okushi a6a47b95ee
Exclude `actix-cors` 2020-03-12 03:04:31 +09:00
Yuki Okushi 1b28a5d48b
Update `actix-web` dependency to 3.0.0-alpha.1 2020-03-12 03:03:50 +09:00
Yuki Okushi c147b94832
Bump up to 3.0.0-alpha.1 2020-03-12 03:03:22 +09:00
Yuki Okushi 95f9a12a5e
dev-deps: Update `env_logger` to 0.7 2020-03-12 02:58:22 +09:00
Yuki Okushi 73eeab0e90
Merge pull request #1391 from JohnTitor/new-awc
Release awc v2.0.0-alpha.1
2020-03-11 21:15:48 +09:00
Yuki Okushi ce1e996b41
Update release date 2020-03-11 20:42:45 +09:00
Yuki Okushi e718f65121
Update tests 2020-03-08 16:42:45 +09:00
Yuki Okushi a9a475d555
Make `test_server` `async` fn 2020-03-08 16:42:26 +09:00
Yuki Okushi b93e1555ec
Update `actix-connect` to 2.0.0-alpha.2 2020-03-08 15:27:40 +09:00
Yuki Okushi 6f33b7ea42
Update `awc` dependency 2020-03-08 15:27:40 +09:00
Yuki Okushi 294523a32f
Bump up to 2.0.0-alpha.1 2020-03-08 15:27:39 +09:00
Yuki Okushi 6b626c7d77
dev-deps: Update `env_logger` to 0.7 2020-03-08 03:07:53 +09:00
Yuki Okushi 5da9e277a2
Merge pull request #1399 from JohnTitor/new-http
Release actix-http 2.0.0-alpha.2
2020-03-08 01:47:40 +09:00
Yuki Okushi 0d5646a8b6
Run rustfmt 2020-03-08 00:52:39 +09:00
Yuki Okushi 7941594f94
Update `actix-http` dependency 2020-03-08 00:50:20 +09:00
Yuki Okushi 6f63acaf01
Bump up to 2.0.0-alpha.2 2020-03-08 00:48:45 +09:00
Yuki Okushi 7172885beb
Update changelog 2020-03-08 00:43:17 +09:00
Yuki Okushi cf721c5fff
Update README example 2020-03-08 00:43:01 +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 a7d805aab7
Merge pull request #1396 from Aaron1011/fix/reapply-dispatcher
Re-apply commit 2cf7b3ad20
2020-03-05 02:48:20 +09:00
Aaron Hill e90950fee1
Re-apply commit 2cf7b3ad20
This ended up getting reverted by #1367, which re-introduced an unsound
use of `Pin::new_unchecked`

See my original PR #1374 for the reasoning behind this change.
2020-03-04 11:27:58 -05:00