Prepare release (#273)

The following crates are to be released:

- tower
- tower-buffer
- tower-discover
- tower-layer
- tower-limit
- tower-load-shed
- tower-retry
- tower-service
- tower-test
- tower-timeout
- tower-util
This commit is contained in:
Carl Lerche 2019-04-26 21:31:25 -07:00 committed by GitHub
parent a4c753bda6
commit 14f4259518
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
69 changed files with 685 additions and 114 deletions

View File

@ -16,6 +16,3 @@ members = [
"tower-timeout", "tower-timeout",
"tower-util", "tower-util",
] ]
[patch.'https://github.com/tower-rs/tower']
tower-retry = { path = "tower-retry" }

9
ci/azure-is-release.yml Normal file
View File

@ -0,0 +1,9 @@
steps:
- bash: |
set -e
if git log --no-merges -1 --format='%s' | grep -q '[ci-release]'; then
echo "##vso[task.setvariable variable=isRelease]true"
fi
failOnStderr: true
displayName: Check if release commit

17
ci/azure-patch-crates.yml Normal file
View File

@ -0,0 +1,17 @@
steps:
- script: |
set -e
# Remove any existing patch statements
mv Cargo.toml Cargo.toml.bck
sed -n '/\[patch.crates-io\]/q;p' Cargo.toml.bck > Cargo.toml
# Patch all crates
cat ci/patch.toml >> Cargo.toml
# Print `Cargo.toml` for debugging
echo "~~~~ Cargo.toml ~~~~"
cat Cargo.toml
echo "~~~~~~~~~~~~~~~~~~~~"
displayName: Patch Cargo.toml

View File

@ -11,7 +11,21 @@ jobs:
parameters: parameters:
rust_version: stable rust_version: stable
- template: azure-is-release.yml
- ${{ each crate in parameters.crates }}: - ${{ each crate in parameters.crates }}:
- script: cargo test - script: cargo test
env:
CI: 'True'
displayName: cargo test -p ${{ crate }}
workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
condition: and(succeeded(), not(variables['isRelease']))
- template: azure-patch-crates.yml
- ${{ each crate in parameters.crates }}:
- script: cargo test
env:
CI: 'True'
displayName: cargo test -p ${{ crate }} displayName: cargo test -p ${{ crate }}
workingDirectory: $(Build.SourcesDirectory)/${{ crate }} workingDirectory: $(Build.SourcesDirectory)/${{ crate }}

17
ci/patch.toml Normal file
View File

@ -0,0 +1,17 @@
# Patch dependencies to run all tests against versions of the crate in the
# repository.
[patch.crates-io]
tower = { path = "tower" }
tower-balance = { path = "tower-balance" }
tower-buffer = { path = "tower-buffer" }
tower-discover = { path = "tower-discover" }
tower-filter = { path = "tower-filter" }
tower-layer = { path = "tower-layer" }
tower-limit = { path = "tower-limit" }
tower-load-shed = { path = "tower-load-shed" }
tower-reconnect = { path = "tower-reconnect" }
tower-retry = { path = "tower-retry" }
tower-service = { path = "tower-service" }
tower-test = { path = "tower-test" }
tower-timeout = { path = "tower-timeout" }
tower-util = { path = "tower-util" }

View File

@ -0,0 +1,3 @@
# 0.1.0 (unreleased)
- Initial release

View File

@ -1,20 +1,28 @@
[package] [package]
name = "tower-balance" name = "tower-balance"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
publish = false
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
indexmap = "1.0.2"
log = "0.4.1" log = "0.4.1"
rand = "0.6" rand = "0.6.5"
tokio-timer = "0.2.4" tokio-timer = "0.2.4"
tower-service = "0.2.0" tower-service = "0.2.0"
tower-discover = { version = "0.1", path = "../tower-discover" } tower-discover = "0.1.0"
tower-util = { version = "0.1", path = "../tower-util" } tower-util = "0.1.0"
indexmap = "1"
[dev-dependencies] [dev-dependencies]
log = "0.4.1" log = "0.4.1"

25
tower-balance/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,3 +1,13 @@
Tower Balance # Tower Balance
A Tower middleware that load balances across a uniform set of services. Balance load across a set of uniform services.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,3 +1,4 @@
#![doc(html_root_url = "https://docs.rs/tower-balance/0.1.0")]
#![deny(rust_2018_idioms)] #![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]
#[cfg(test)] #[cfg(test)]

View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,18 +1,25 @@
[package] [package]
name = "tower-buffer" name = "tower-buffer"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
[dependencies] [dependencies]
futures = "0.1.25" futures = "0.1.25"
tower-service = "0.2.0" tower-service = "0.2.0"
tower-layer = { version = "0.1", path = "../tower-layer" } tower-layer = "0.1.0"
tokio-executor = "0.1.7" tokio-executor = "0.1.7"
tokio-sync = "0.1.0" tokio-sync = "0.1.0"
[dev-dependencies] [dev-dependencies]
tower = { version = "0.1", path = "../tower" } tower = { version = "0.1.0", path = "../tower" }
tower-test = { version = "0.1", path = "../tower-test" } tower-test = { version = "0.1.0", path = "../tower-test" }

25
tower-buffer/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,3 +1,13 @@
# Tower Buffer # Tower Buffer
Tower middleware providing a buffering layer in front of an inner `Service`. Buffer requests before dispatching to a `Service`.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,3 +1,4 @@
#![doc(html_root_url = "https://docs.rs/tower-buffer/0.1.0")]
#![deny(rust_2018_idioms)] #![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]

View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,11 +1,18 @@
[package] [package]
name = "tower-discover" name = "tower-discover"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
tower-service = "0.2.0" tower-service = "0.2.0"

25
tower-discover/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,3 +1,13 @@
Tower Discovery # Tower Discovery
Abstracts over service discovery strategies. Abstracts over service discovery strategies.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,3 +1,4 @@
#![doc(html_root_url = "https://docs.rs/tower-discover/0.1.0")]
#![deny(rust_2018_idioms)] #![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]

View File

@ -0,0 +1,3 @@
# 0.1.0 (unreleased)
- Initial release

View File

@ -1,15 +1,23 @@
[package] [package]
name = "tower-filter" name = "tower-filter"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
publish = false
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
tower-service = "0.2.0" tower-service = "0.2.0"
tower-layer = { version = "0.1", path = "../tower-layer" } tower-layer = "0.1.0"
[dev-dependencies] [dev-dependencies]
tower-test = { version = "0.1", path = "../tower-test" } tower-test = { version = "0.1", path = "../tower-test" }

25
tower-filter/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,4 +1,14 @@
Tower Filter # Tower Filter
A Tower middleware that conditionally allows requests to be dispatched to the Conditionally allow requests to be dispatched to a service based on the result
inner service based on the result of a predicate. of a predicate.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,3 +1,4 @@
#![doc(html_root_url = "https://docs.rs/tower-filter/0.1.0")]
#![deny(rust_2018_idioms)] #![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]

3
tower-layer/CHANGELOG.md Normal file
View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,11 +1,15 @@
[package] [package]
name = "tower-layer" name = "tower-layer"
# When releasing to crates.io: # When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url. # - Update html_root_url.
# - Update documentation URL # - Update doc url
# - Create "v0.x.y" git tag. # - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
readme = "README.md" readme = "README.md"
repository = "https://github.com/tower-rs/tower" repository = "https://github.com/tower-rs/tower"
@ -18,8 +22,8 @@ categories = ["asynchronous", "network-programming"]
edition = "2018" edition = "2018"
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
tower-service = "0.2.0" tower-service = "0.2.0"
[dev-dependencies] [dev-dependencies]
void = "1" void = "1.0.2"

View File

@ -1,5 +1,5 @@
#![deny(missing_docs, rust_2018_idioms)]
#![doc(html_root_url = "https://docs.rs/tower-layer/0.1.0")] #![doc(html_root_url = "https://docs.rs/tower-layer/0.1.0")]
#![deny(missing_docs, rust_2018_idioms)]
//! Layer traits and extensions. //! Layer traits and extensions.
//! //!

3
tower-limit/CHANGELOG.md Normal file
View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,19 +1,26 @@
[package] [package]
name = "tower-limit" name = "tower-limit"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
tower-service = "0.2.0" tower-service = "0.2.0"
tower-layer = { version = "0.1", path = "../tower-layer"} tower-layer = "0.1.0"
tokio-sync = "0.1.3" tokio-sync = "0.1.3"
tokio-timer = "0.2.6" tokio-timer = "0.2.6"
[dev-dependencies] [dev-dependencies]
tower-test = { version = "0.1", path = "../tower-test" } tower-test = { version = "0.1", path = "../tower-test" }
tokio = "0.1" tokio = "0.1.19"
tokio-mock-task = "0.1.1" tokio-mock-task = "0.1.1"

25
tower-limit/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,4 +1,13 @@
Tower Rate Limit # Tower Rate Limit
A Tower middleware that rate limits the requests that are passed to the inner Limit maximum request rate to a `Service`.
service.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,7 +1,6 @@
#![doc(html_root_url = "https://docs.rs/tower-limit/0.1.0")]
#![cfg_attr(test, deny(warnings))] #![cfg_attr(test, deny(warnings))]
#![deny(missing_debug_implementations)] #![deny(missing_debug_implementations, missing_docs, rust_2018_idioms)]
#![deny(missing_docs)]
#![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]
//! Tower middleware for limiting requests. //! Tower middleware for limiting requests.

View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,16 +1,23 @@
[package] [package]
name = "tower-load-shed" name = "tower-load-shed"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Sean McArthur <sean@seanmonstar.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
[dependencies] [dependencies]
futures = "0.1.25" futures = "0.1.25"
tower-service = "0.2.0" tower-service = "0.2.0"
tower-layer = { version = "0.1.0", path = "../tower-layer" } tower-layer = "0.1.0"
[dev-dependencies] [dev-dependencies]
tokio-mock-task = "0.1.1" tokio-mock-task = "0.1.1"
tower-test = { version = "0.1", path = "../tower-test" } tower-test = { version = "0.1.0", path = "../tower-test" }

25
tower-load-shed/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,4 +1,14 @@
Tower Load Shed # Tower Load Shed
A Tower middleware rejects requests immediately if the underlying service is Immediately reject requests if the inner service is not ready. This is also
not ready, known as load-shedding. known as load-shedding.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,7 +1,6 @@
#![doc(html_root_url = "https://docs.rs/tower-load-shed/0.1.0")]
#![cfg_attr(test, deny(warnings))] #![cfg_attr(test, deny(warnings))]
#![deny(missing_debug_implementations)] #![deny(missing_debug_implementations, missing_docs, rust_2018_idioms)]
#![deny(missing_docs)]
#![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]
//! Tower middleware for shedding load when inner services aren't ready. //! Tower middleware for shedding load when inner services aren't ready.

View File

@ -0,0 +1,3 @@
# 0.1.0 (unreleased)
- Initial release

View File

@ -1,13 +1,21 @@
[package] [package]
name = "tower-reconnect" name = "tower-reconnect"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
publish = false
[dependencies] [dependencies]
log = "0.4.1" log = "0.4.1"
futures = "0.1" futures = "0.1.26"
tower-service = "0.2.0" tower-service = "0.2.0"
tower-util = { version = "0.1", path = "../tower-util" } tower-util = "0.1.0"

25
tower-reconnect/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,4 +1,13 @@
Tower Reconnect # Tower Reconnect
A Tower middleware that automatically recreates an inner service when an error Automatically recreate a new `Service` instance when an error is encountered.
is encountered.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,3 +1,4 @@
#![doc(html_root_url = "https://docs.rs/tower-load-shed/0.1.0")]
#![deny(rust_2018_idioms)] #![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]

3
tower-retry/CHANGELOG.md Normal file
View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,17 +1,24 @@
[package] [package]
name = "tower-retry" name = "tower-retry"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Sean McArthur <sean@seanmonstar.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
tower-service = "0.2.0" tower-service = "0.2.0"
tower-layer = { version = "0.1", path = "../tower-layer" } tower-layer = "0.1.0"
tokio-timer = "0.2.4" tokio-timer = "0.2.4"
[dev-dependencies] [dev-dependencies]
tower-test = { version = "0.1", path = "../tower-test" } tower-test = { version = "0.1.0", path = "../tower-test" }
tokio-executor = "0.1.2" tokio-executor = "0.1.2"

25
tower-retry/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,4 +1,13 @@
# Tower Retry # Tower Retry
A Tower middleware to control retrying of requests when a response error is Retry failed requests.
encountered.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,7 +1,6 @@
#![deny(missing_debug_implementations)] #![doc(html_root_url = "https://docs.rs/tower-retry/0.1.0")]
#![deny(missing_docs)] #![deny(missing_docs, missing_debug_implementations, rust_2018_idioms)]
// #![deny(warnings)] #![cfg_attr(test, deny(warnings))]
#![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]
//! Tower middleware for retrying "failed" requests. //! Tower middleware for retrying "failed" requests.

View File

@ -2,12 +2,15 @@
name = "tower-service" name = "tower-service"
# When releasing to crates.io: # When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url. # - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md. # - Update CHANGELOG.md.
# - Update documentation URL # - Create "v0.2.x" git tag.
# - Create "v0.x.y" git tag.
version = "0.2.0" version = "0.2.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
readme = "README.md" readme = "README.md"
repository = "https://github.com/tower-rs/tower" repository = "https://github.com/tower-rs/tower"

View File

@ -1,4 +1,4 @@
Copyright (c) 2018 Carl Lerche Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated person obtaining a copy of this software and associated

3
tower-test/CHANGELOG.md Normal file
View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,13 +1,20 @@
[package] [package]
name = "tower-test" name = "tower-test"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
tokio-sync = "0.1.3" tokio-sync = "0.1.3"
tower-service = "0.2.0" tower-service = "0.2.0"

25
tower-test/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,3 +1,13 @@
Tower Mock # Tower Mock
A mock `Service` that can be used to test middleware or clients. A mock `Service` that can be used to test middleware or clients.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,3 +1,4 @@
#![doc(html_root_url = "https://docs.rs/tower-test/0.1.0")]
#![deny(rust_2018_idioms)] #![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]

View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,13 +1,20 @@
[package] [package]
name = "tower-timeout" name = "tower-timeout"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
publish = false
edition = "2018" edition = "2018"
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
tower-service = "0.2.0" tower-service = "0.2.0"
tower-layer = { version = "0.1", path = "../tower-layer" } tower-layer = "0.1.0"
tokio-timer = "0.2.6" tokio-timer = "0.2.6"

25
tower-timeout/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,3 +1,13 @@
Tower Timeout # Tower Timeout
A Tower middleware that applies a timeout to requests. Apply a timeout to requests, ensuring completion within a fixed time duration.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,13 +1,13 @@
//! Tower middleware that applies a timeout to requests.
//!
//! If the response does not complete within the specified timeout, the response
//! will be aborted.
#![doc(html_root_url = "https://docs.rs/tower-timeout/0.1.0")] #![doc(html_root_url = "https://docs.rs/tower-timeout/0.1.0")]
#![deny(missing_debug_implementations, missing_docs, rust_2018_idioms)] #![deny(missing_debug_implementations, missing_docs, rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]
#![cfg_attr(test, deny(warnings))] #![cfg_attr(test, deny(warnings))]
//! Tower middleware that applies a timeout to requests.
//!
//! If the response does not complete within the specified timeout, the response
//! will be aborted.
pub mod error; pub mod error;
pub mod future; pub mod future;
mod layer; mod layer;

3
tower-util/CHANGELOG.md Normal file
View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -2,12 +2,15 @@
name = "tower-util" name = "tower-util"
# When releasing to crates.io: # When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url. # - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md. # - Update CHANGELOG.md.
# - Update documentation URL # - Create "v0.1.x" git tag.
# - Create "v0.x.y" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
readme = "README.md" readme = "README.md"
repository = "https://github.com/tower-rs/tower" repository = "https://github.com/tower-rs/tower"
@ -26,9 +29,9 @@ io = ["tokio-io"]
futures = "0.1.23" futures = "0.1.23"
tokio-io = { version = "0.1.12", optional = true } tokio-io = { version = "0.1.12", optional = true }
tower-service = "0.2.0" tower-service = "0.2.0"
tower-layer = { version = "0.1.0", path = "../tower-layer" } tower-layer = "0.1.0"
[dev-dependencies] [dev-dependencies]
tokio-mock-task = "0.1" tokio-mock-task = "0.1.1"
tower = { version = "0.1.0", path = "../tower" } tower = { version = "0.1.0", path = "../tower" }
tower-test = { version = "0.1.0", path = "../tower-test" } tower-test = { version = "0.1.0", path = "../tower-test" }

View File

@ -1,6 +1,6 @@
# Tower Service Util # Tower Service Util
Utilities for working with `tower-service`. Utilities for working with `Service`.
## License ## License

View File

@ -1,7 +1,9 @@
//! Various utility types and functions that are generally with Tower. #![doc(html_root_url = "https://docs.rs/tower-util/0.1.0")]
#![deny(rust_2018_idioms)] #![deny(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]
//! Various utility types and functions that are generally with Tower.
mod boxed; mod boxed;
mod call_all; mod call_all;
mod either; mod either;

3
tower/CHANGELOG.md Normal file
View File

@ -0,0 +1,3 @@
# 0.1.0 (April 26, 2019)
- Initial release

View File

@ -1,11 +1,18 @@
[package] [package]
name = "tower" name = "tower"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.0" version = "0.1.0"
authors = ["Carl Lerche <me@carllerche.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
readme = "README.md" readme = "README.md"
repository = "https://github.com/tower-rs/tower" repository = "https://github.com/tower-rs/tower"
publish = false
description = """ description = """
Tower is a library of modular and reusable components for building robust Tower is a library of modular and reusable components for building robust
clients and servers. clients and servers.
@ -19,20 +26,20 @@ default = ["full"]
full = [] full = []
[dependencies] [dependencies]
futures = "0.1" futures = "0.1.26"
tower-service = "0.2" tower-buffer = "0.1.0"
tower-util = { version = "0.1.0", path = "../tower-util", features = ["io"] } tower-discover = "0.1.0"
tower-layer = { version = "0.1", path = "../tower-layer" } tower-layer = "0.1.0"
tower-limit = { version = "0.1.0", path = "../tower-limit" } tower-limit = "0.1.0"
tower-retry = { version = "0.1", path = "../tower-retry" } tower-load-shed = "0.1.0"
tower-buffer = { version = "0.1", path = "../tower-buffer" } tower-retry = "0.1.0"
tower-load-shed = { version = "0.1", path = "../tower-load-shed" } tower-service = "0.2.0"
tower-discover = { version = "0.1", path = "../tower-discover" } tower-timeout = "0.1.0"
tower-timeout = { version = "0.1", path = "../tower-timeout" } tower-util = { version = "0.1.0", features = ["io"] }
[dev-dependencies] [dev-dependencies]
futures = "0.1" futures = "0.1.26"
log = "0.4.1" log = "0.4.1"
tokio = "0.1" tokio = "0.1"
env_logger = { version = "0.5.3", default-features = false } env_logger = { version = "0.5.3", default-features = false }
void = "1" void = "1.0.2"

25
tower/LICENSE Normal file
View File

@ -0,0 +1,25 @@
Copyright (c) 2019 Tower Contributors
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -8,3 +8,13 @@ networking clients and servers.
Tower aims to make it as easy as possible to build robust networking clients and Tower aims to make it as easy as possible to build robust networking clients and
servers. It is protocol agnostic, but is designed around a request / response servers. It is protocol agnostic, but is designed around a request / response
pattern. If your protocol is entirely stream based, Tower may not be a good fit. pattern. If your protocol is entirely stream based, Tower may not be a good fit.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Tower by you, shall be licensed as MIT, without any additional
terms or conditions.

View File

@ -1,3 +1,4 @@
#![doc(html_root_url = "https://docs.rs/tower/0.1.0")]
// Allows refining features in the future without breaking backwards // Allows refining features in the future without breaking backwards
// compatibility // compatibility
#![cfg(feature = "full")] #![cfg(feature = "full")]