Commit Graph

1713 Commits

Author SHA1 Message Date
daxpedda e5f3d88a4e Switch brotli compressor to rust. (#1197)
* Switch to a rustified version of brotli.

* Some memory optimizations.

* Make brotli not optional anymore.
2019-12-07 21:55:41 +06:00
Nikolay Kim ed2f3fe80d use actix-net alpha.3 release 2019-12-07 12:28:26 +06:00
Nikolay Kim 205a964d8f upgrade to tokio 0.2 2019-12-05 23:35:43 +06:00
Nikolay Kim b45c6cd66b replace hashbrown with std hashmap 2019-12-04 18:33:43 +06:00
Nikolay Kim 14075ebf7f use released versions of actix-net 2019-12-02 23:33:39 +06:00
Nikolay Kim 068f047dd5 update service factory config 2019-12-02 21:37:13 +06:00
Nikolay Kim f4c01384ec update to latest actix-net 2019-12-02 17:33:11 +06:00
Nikolay Kim f73f97353b refactor ResponseError trait 2019-11-26 16:07:39 +06:00
Nikolay Kim 4dc31aac93 use actix_rt::test for test setup 2019-11-26 11:25:50 +06:00
Jim Blandy c5907747ad Remove implementation of Responder for (). Fixes #1108.
Rationale:

- In Rust, one can omit a semicolon after a function's final expression to make
  its value the function's return value. It's common for people to include a
  semicolon after the last expression by mistake - common enough that the Rust
  compiler suggests removing the semicolon when there's a type mismatch between
  the function's signature and body. By implementing Responder for (), Actix makes
  this common mistake a silent error in handler functions.

- Functions returning an empty body should return HTTP status 204 ("No Content"),
  so the current Responder impl for (), which returns status 200 ("OK"), is not
  really what one wants anyway.

- It's not much of a burden to ask handlers to explicitly return
  `HttpResponse::Ok()` if that is what they want; all the examples in the
  documentation do this already.
2019-11-23 21:10:02 +06:00
Nikolay Kim 8683ba8bb0 rename .to_async() to .to() 2019-11-21 21:36:35 +06:00
Nikolay Kim 1f0577f8d5 cleanup api doc examples 2019-11-21 16:02:17 +06:00
Nikolay Kim 53c5151692 use response instead of result for asyn c handlers 2019-11-21 16:02:17 +06:00
Nikolay Kim 55698f2524 migrade rest of middlewares 2019-11-21 16:02:17 +06:00
Nikolay Kim 3127dd4db6 migrate actix-web to std::future 2019-11-21 16:02:17 +06:00
Feiko Nanninga 88110ed268 Add security note to ConnectionInfo::remote() (#1158) 2019-11-14 08:32:47 +06:00
Nikolay Kim f7f410d033 fix test order dep 2019-11-06 11:20:47 -08:00
Anton Lazarev ace98e3a1e support Host guards when Host header is unset (#1129) 2019-10-15 05:05:54 +06:00
Priit Laes 0f09415469 Convert documentation examples to Rust 2018 edition (#1120)
* Convert types::query examples to rust-2018 edition

* Convert types::json examples to rust-2018 edition

* Convert types::path examples to rust-2018 edition

* Convert types::form examples to rust-2018 edition

* Convert rest of the examples to rust-2018 edition.
2019-10-07 11:29:11 +06:00
Koen Hoeijmakers 15d3c1ae81 Update docs of guard.rs (#1116)
* Update guard.rs
2019-10-07 12:05:17 +09:00
Igor Aleksanov f81ae37677 Add From<Payload> for crate::dev::Payload (#1110)
* Add From<Payload> for crate::dev::Payload

* Make dev::Payload field of Payload public and add into_inner method

* Add changelog entry
2019-10-01 14:05:38 +06:00
Nikolay Kim 5169d306ae update ConnectionInfo.remote() doc string 2019-09-27 07:03:12 +06:00
karlri c659c33919 Feature uds: Add listen_uds to ServerBuilder (#1085)
Allows using an existing Unix Listener instead of binding to a path.
Useful for when running as a daemon under systemd.

Change-Id: I54a0e78c321d8b7a9ded381083217af590e9a7fa
2019-09-25 15:16:51 +06:00
Nikolay Kim d9af8f66ba Use actix-testing for testing utils 2019-09-25 10:28:41 +06:00
Jim Blandy 58c7065f08 Implement `register_data` method on `Resource` and `Scope`. (#1094)
* Implement `register_data` method on `Resource` and `Scope`.

* Split Scope::register_data tests out from Scope::data tests.

* CHANGES.md: Mention {Scope,Resource}::register_data.
2019-09-18 06:36:39 +06:00
Jos van den Oever 32a1c36597 Make UrlencodedError::Overflow more informative (#1089) 2019-09-17 06:58:04 +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 60b7aebd0a fmt & clippy 2019-09-12 21:52:46 +06:00
κeen 8a9fcddb3c Condition middleware (#1075)
* add condition middleware

* write tests

* update changes

* Update src/middleware/condition.rs

Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>

* Update src/middleware/condition.rs

Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>

* Update src/middleware/condition.rs

Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>

* Update src/middleware/condition.rs

Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>
2019-09-09 12:26:38 +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
Philip Jenvey 616981ecf9 clear extensions before reclaiming HttpRequests in their pool (#1063)
Issue #1062
2019-08-29 09:35:05 +06:00
Leland Jansen c193137905 actix_web::test::TestRequest::set_form (#1058) 2019-08-28 21:32:17 +06:00
Erlend Langseth a07cdd6533 Data::into_inner 2019-08-27 17:25:25 +01:00
Yuki Okushi 23d768a77b
Add explicit `dyn`s (#1041)
* Add explicit `dyn`s

* Remove unnecessary lines
2019-08-17 02:45:44 +09:00
Nikolay Kim 0d9ea41047 update min rust version 2019-07-31 06:49:46 -07:00
Cyril Plisko 6f2049ba9b Fix typo 2019-07-25 12:54:59 +01:00
jesskfulwood 8f48ed2597 impl Responder for Form 2019-07-20 14:46:46 +01:00
Nikolay Kim 941241c5f0 Remove unneeded actix-utils dependency 2019-07-20 10:50:36 +06:00
jesskfullwood f8320fedd8 add note about Query decoding (#992) 2019-07-19 17:37:49 +06:00
jesskfullwood c808364c07 make Query payload public (#991) 2019-07-19 15:47:44 +06:00
Anton Lazarev 3650f6d7b8 Re-implement Host predicate (#989)
* update HostGuard implementation

* update/add tests for new HostGuard implementation
2019-07-19 10:28:43 +06:00
Nikolay Kim fbdda8acb1 Unix domain sockets (HttpServer::bind_uds) #92 2019-07-18 17:24:12 +06:00
Rotem Yaari d03296237e Log error results in Logger middleware (closes #938) (#984)
* Log error results in Logger middleware (closes #938)

* Log internal server errors with an ERROR log level

* Logger middleware: don't log 500 internal server errors, as Actix now logs them always

* Changelog
2019-07-18 14:31:18 +06:00
Nikolay Kim 2a2d7f5768 nightly clippy warnings 2019-07-17 15:53:51 +06:00
Nikolay Kim 4092c7f326 clippy warnings 2019-07-17 15:08:30 +06:00
Nikolay Kim baaa7b3fbb Replace ClonableService with local copy 2019-07-17 13:55:44 +06:00
Ravi Shankar 32718b7e31 Expose factory traits and some clippy fixes (#983) 2019-07-17 12:58:42 +06:00
Nikolay Kim 7b1dcaffda cleanup deprecation warning for Box<dyn> 2019-07-17 11:44:39 +06:00
Nikolay Kim c65dbaf88e expose app's ResourceMap via resource_map method 2019-07-17 11:33:05 +06:00
Nikolay Kim c45728ac01 prep test server release 2019-07-16 10:21:52 +06:00
messense b1143168e5 Impl Responder for (T, StatusCode) where T: Responder (#954) 2019-07-11 14:42:58 +06:00
Nikolay Kim 69456991f6 update api doc example for client and add panic info for connection_info 2019-07-11 14:40:37 +06:00
Michael Snoyman 0d8a4304a9 Drop a duplicated word (#958) 2019-07-05 20:46:55 +06:00
Cameron Dershem 37f4ce8604 Fixes typo in docs. (#948)
Small typo in docs.
2019-06-29 10:38:16 +06:00
messense 44bb79cd07 Call req.path() on Json extractor error only (#945)
* Call req.path() on Json extractor error only

* Cleanup len parse code
2019-06-28 10:44:53 +06:00
Nikolay Kim af9fb5d190 Support asynchronous data factories #850 2019-06-28 10:43:52 +06:00
Cameron Dershem c0c71f82c0 Fixes typo. (#940)
Small typo fix.
2019-06-25 23:23:36 +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
Joe Roberts d7780d53c9 Fix typo in `actix_web::web::Data::get_ref docstring` (#921) 2019-06-18 07:27:23 +06:00
Nikolay Kim 546a8a58db remove cors and identity middlewares 2019-06-17 12:33:00 +06:00
Nikolay Kim d293ae2a69 fix nested resource map registration #915 2019-06-15 22:12:20 +06:00
Nikolay Kim d7ec241fd0 re-export identity and cors middleware 2019-06-15 21:47:06 +06:00
Nikolay Kim cd323f2ff1 Move cors middleware to actix-cors crate 2019-06-15 09:34:16 +06:00
Nikolay Kim c8118e8411 fix path doc tests 2019-06-12 20:12:15 +06:00
Nikolay Kim e7ba67e1a8 rename PathPayloadError and test for path config 2019-06-12 17:02:45 +06:00
Lucas Berezy 13e618b128 Added initial support for PathConfig, allows setting custom error handler. (#903) 2019-06-12 16:49:56 +06:00
Nikolay Kim 7450ae37a7 Re-apply patch from #637 #894 2019-06-12 16:45:05 +06:00
Nikolay Kim 2ffda29f9b Allow to test an app that uses async actors #897 2019-06-12 16:15:06 +06:00
Nikolay Kim ff724e239d move identity service separate crate 2019-06-12 15:52:48 +06:00
Bob ee769832cf get_identity from HttpMessage (#908)
* get_identity from HttpMessage

* more doc for RequestIdentity
2019-06-12 09:26:46 +06:00
Stefano Probst 53e2f8090f Mark default enabled package features in the docs (#890) 2019-06-06 11:14:56 +06:00
Nikolay Kim d9a62c4bbf add App::register_data() 2019-06-05 08:43:39 +06:00
Nikolay Kim 0e138e111f add external resource support on scope level 2019-06-03 23:41:32 +06:00
Denys Vitali 1fce4876f3 Scope configuration (#880)
* WIP: Scope configuarion

* Extensions: Fix into_iter()

* Scope: Fix tests

* Add ScopeConfig to web

Committing from mobile, if this doesn't look good it's because I haven't tested it...

* Scope Config: Use ServiceConfig instead

* Scope: Switch to ServiceConfig in doc

* ScopeConfig: Remove unnecessary changes, handle the case when data is empty

* ScopeConfig: Remove changes from actix-http
2019-06-03 23:12:37 +06:00
Nikolay Kim 15cdc680f6 Static files are incorrectly served as both chunked and with length #812 2019-06-01 17:57:40 +06:00
Mohab Usama f1764bba43 Fix Logger time format (use rfc3339) (#867)
* Fix Logger time format (use rfc3339)

* Update change log
2019-05-31 12:09:21 +04:00
Nikolay Kim 1eb89b8375 remove debug prints 2019-05-25 03:16:53 -07:00
Vlad Frolov 801cc2ed5d Cleaned unnecessary Option<_> around ServerBuilder in server.rs/HttpServer (#863) 2019-05-23 05:21:02 -07:00
Nikolay Kim ded1e86e7e Add ServiceRequest::set_payload() method 2019-05-22 21:25:51 -07:00
Nikolay Kim d3e807f6e9 move Payload to inner http request 2019-05-22 11:49:27 -07:00
Nikolay Kim 7746e785c1 re-export Service and Transform traits 2019-05-22 11:20:37 -07:00
Nikolay Kim 4e141d7f5d Merge branch 'master' of github.com:actix/actix-web 2019-05-22 11:18:42 -07:00
Nikolay Kim 12842871fe Clear http requests pool on app service drop #860 2019-05-22 11:18:33 -07:00
Aliaksandr Rahalevich fc85ae4014 small documentation fix (#856) 2019-05-21 10:43:18 -07:00
Harry Stern 5826f39dbe Add `set_json` method to TestRequest (#851)
- Takes a type which implements serde::Serialize, serializes it to JSON,
and sets it as the payload. The content-type is also set to JSON.
2019-05-18 19:36:28 -07:00
Herbert Jones e857ab1f81 HttpServer::shutdown_timeout u16 to u64 (#849)
Increase maximum graceful shutdown time from 18 hours.

For issue #848.
2019-05-18 10:50:35 -07:00
Miles Granger 4b215e0839 Support Query<T>::from_query() (#846) 2019-05-17 13:10:46 -07:00
Nikolay Kim e1ff3bf8fa fix resource match with params #841 2019-05-15 10:31:40 -07:00
Davide Di Carlo bba90d7f22 Query config (#839)
* add QueryConfig

* expose QueryConfig in web module

* fmt

* use associated type for QueryConfig

* update CHANGES.md
2019-05-14 13:54:30 -07:00
Davide Di Carlo 6c3d8b8738 Make JsonConfig send (#830)
* replace Rc with Arc

* add Send trait requirement for Fn in JsonConfig error handler

* add Sync trait requirement for Fn in JsonConfig error handler

* use associated type inside JsonConfig

* fix lint: members in the impl has the same order in the trait

* Update CHANGES.md
2019-05-12 20:04:08 -07:00
Nikolay Kim e9cbcbaf03 update dependencies 2019-05-12 10:18:02 -07:00
Nikolay Kim 45c05978b0 Allow to set/override app data on scope level 2019-05-12 09:42:05 -07:00
Nikolay Kim df08baf67f update actix-net dependencies 2019-05-12 08:34:51 -07:00
Nikolai Vazquez a77b0b054a Make `App::configure` take an `FnOnce` (#825) 2019-05-10 14:44:49 -07:00
Nikolay Kim fa78da8156 unify route and app data, it allows to provide global extractor config #775 2019-05-04 19:43:49 -07:00
James 7ef4f5ac0b Make request headers optional in CORS preflight (#816) 2019-05-04 08:41:37 -07:00
Nikolay Kim 6b34909537 Fix NormalizePath middleware impl #806 2019-05-01 12:40:56 -07:00
Douman 87284f0951 Add doctest to verify NormalizePath middleware (#809) 2019-05-01 11:47:51 -07:00
Nikolay Kim 94a0d1a6bc remove old api doc refs 2019-04-29 18:42:21 -07:00
Nikolay Kim f4e1205cbb fix reactor drop panic 2019-04-29 10:14:08 -07:00