Commit Graph
96 Commits
Author SHA1 Message Date
Lucio FrancoandGitHub 808c417cbd chore: Prepare 0.10 release (#954) 2022-03-31 17:05:54 -04:00
Jesse SzwedkoandGitHub c78274e3fe feat: Update prost to 0.10 (#948) 2022-03-30 10:43:06 -04:00
Sylwester RąpałaandGitHub 01e5be5080 Add example of detecting client drops in bidirectional streams on server side (#931) 2022-03-03 11:50:43 -05:00
Lucio FrancoandGitHub a359539a22 chore: Update mock example (#926) 2022-02-24 09:28:53 -05:00
Sylwester RąpałaandGitHub c9e78c4d65 chore: Fulfill MIT license requirments (#916) 2022-02-18 13:56:47 -05:00
Anthony GreenandGitHub dee2ab52ff feat(transport): add unix socket support in server (#861) 2022-02-14 15:00:58 -05:00
Matthias VogelgesangandGitHub d6c0fc112b feat(build): use prettyplease to format output (#890) (#904) 2022-02-10 13:20:52 -05:00
tottotoandGitHub 366d888a4b chore: Fix clippy lints (#881) 2022-01-12 16:32:40 -05:00
tottotoandGitHub daf406dd2b chore: Update tracing-subscriber to 0.3 (#873) 2021-12-30 09:53:02 +01:00
JimmyandGitHub 16321c279f docs: fix typo in the streaming example. (#871) 2021-12-25 00:03:20 +01:00
David PedersenandGitHub 101f2f76d4 chore: revert to 2018 edition (#847)
Fixes https://github.com/hyperium/tonic/issues/843
2021-12-07 09:49:07 +01:00
Mfon Eti-mfonandGitHub c62f382e3c chore(examples): fix wording in helloworld tutorial (#836)
closes #835
2021-11-11 16:49:45 +01:00
Cezar MatheandGitHub 8508f369c2 fix(examples): Fix autoreload example (#798) (#818) 2021-11-01 18:29:44 -04:00
Lucio FrancoandGitHub 2fe7131a23 chore: Prepare 0.6.0 release (#811) 2021-10-25 10:25:56 -04:00
Lucio FrancoandGitHub 23c1392fb7 fix(tonic): Remove Sync requirement for streams (#804) 2021-10-24 21:48:05 -04:00
Lucio FrancoandGitHub 1f3df8db9e chore: Upgrade to 2021 edition (#808) 2021-10-24 21:12:20 -04:00
Lucio FrancoandGitHub bbcacd0625 chore: Fix routeguide example warning (#807) 2021-10-22 11:17:04 -04:00
Eliza WeismanandGitHub 09805ece45 feat: Update prost and friends to 0.9 (#791) 2021-10-19 10:59:28 -04:00
Lucio FrancoandGitHub 4604042934 Add streaming example w/ client disconnect (#782) 2021-10-07 17:04:26 -04:00
Jerboas86andGitHub ddab65ede9 docs: fix typo (#760)
in in <--> in
2021-09-08 18:43:10 +02:00
David PedersenandGitHub 4e578b5046 doc(tonic): add more interceptor examples (#736)
Some have asked how to use the new `Interceptor` trait to create named
interceptors. This updates the client example to show how to do that.
2021-08-09 16:42:15 +02:00
Yotam OfekandGitHub 8c8f4d1251 feat(tonic): add Interceptor trait (#713)
* Expose `Interceptor` trait.

* Revert changes to public API surface.

* Rename types, add deprecated alias for old names.
2021-07-27 11:11:51 -04:00
David PedersenandGitHub 4b0ece6d28 chore: fix clippy lints (#707) 2021-07-09 18:23:55 +02:00
David PedersenandGitHub 5aa8ae1fec feat(examples): add grpc-web example (#710)
Creates a server using tonic-web and a client that uses a regular
`hyper::Client` and issues a regular HTTP/1.1 request.
2021-07-09 18:02:43 +02:00
040e3a4811 chore: Prepare v0.5 release (#706)
* bump tonic version to 0.5

* Update changelog for 0.5

* Update CHANGELOG.md

Co-authored-by: David Pedersen <[email protected]>

* address comments

Co-authored-by: David Pedersen <[email protected]>
2021-07-08 15:53:14 -04:00
David PedersenandGitHub acdb3273bb chore: update prost, and related crates, to 0.8 (#703)
* chore: update prost, and related crates, to 0.8

Updates prost, prost-derive, prost-build, and prost-types to 0.8.

* Update the last few places
2021-07-08 15:02:02 -04:00
Conner BryanandGitHub a948a8f884 feat(build): support adding attributes to clients and servers (#684) 2021-07-08 15:01:28 -04:00
Lucio FrancoandGitHub 2346d99f6e example: Add mocked io example (#677)
* example: Add mocked io example

* fix mock example

* Remove uniex bound for mock impl
2021-07-08 10:45:04 -04:00
David PedersenandGitHub 0583cff80f feat(codec): compression support (#692)
* Initial compression support

* Support configuring compression on `Server`

* Minor clean up

* Test that compression is actually happening

* Clean up some todos

* channels compressing requests

* Move compression to be on the codecs

* Test sending compressed request to server that doesn't support it

* Clean up a bit

* Compress server streams

* Compress client streams

* Bidirectional streaming compression

* Handle receiving unsupported encoding

* Clean up

* Add note to future self

* Support disabling compression for individual responses

* Add docs

* Add compression examples

* Disable compression behind feature flag

* Add some docs

* Make flate2 optional dependency

* Fix docs wording

* Format

* Reply with which encodings are supported

* Convert tests to use mocked io

* Fix lints

* Use separate counters

* Don't make a long stream

* Address review feedback
2021-07-02 11:25:03 -04:00
David PedersenandGitHub e5e311853b feat(transport): provide generic access to connect info (#647) 2021-05-28 13:27:37 +02:00
David PedersenandGitHub 4d2667d1cb feat(tonic): make it easier to add tower middleware to servers (#651) 2021-05-19 09:19:58 +02:00
David PedersenandGitHub 4dda4cbcca feat(tonic): Use BoxBody from http-body crate (#622)
As of `http-body` 0.4.1 its has had a `BoxBody` type similar to
`tonic::body::BoxBody`. It also has `Empty` and `Body::map_{data,err}`.

That means all the custom body things we had in tonic can basically be
replaced with that.

Note that this is a breaking change so we should merge this next time we
decide to ship a breaking release.

The breaking changes are:

- `tonic::body::Body` has been removed. I think its fine for users to
depend directly on `http-body` if they need this trait.
- `tonic::body::BoxBody` is now just a type alias for
`http_body::combinators::BoxBody<Bytes, Status>`. So the methods it
previously had are gone. The replacements are
  - `tonic::body::Body::new` -> `http_body::Body::boxed`
  - `tonic::body::Body::map_from` -> `http_body::Body::map_data` and
  `http_body::Body::map_err` depending on which part you want to map.
  - `tonic::body::Body::empty` -> `http_body::Empty`

Additionally a `Sync` bound has been added to a few methods. I actually
don't think this is a breaking change because the old
`tonic::body::Body` trait had `Sync` as a supertrait meaning the `Sync`
requirement was already there.

Fixes https://github.com/hyperium/tonic/issues/557
2021-05-18 10:41:21 +02:00
JaydenElliottandGitHub f613386d95 doc(examples): fixed grammar (#646) 2021-05-14 07:35:15 +02:00
David PedersenandGitHub 352b0f584b feat(tonic): add Request and Response extensions (#642)
Adds `tonic::Extensions` which is a newtype around `http::Extensions`.

Request extensions can be set by interceptors with
`Request::extensions_mut` and retrieved from RPCs with
`Request::extensions`. Extensions can also be set in tower middleware
and will be carried through to the RPC.

Since response extensions cannot be set by interceptors the main use
case is to set them in RPCs and retrieve them in tower middlewares.
Figured that might be useful.

Fixes https://github.com/hyperium/tonic/issues/255
2021-05-13 15:54:20 +02:00
David PedersenandGitHub 4a917a32f0 fix(examples): Fix tower examples (#624)
Doing

```rust
let clone = self.inner.clone();
Box::pin(async move {
    let response = clone.call(request).await?;
    Ok(response)
})
```

If `self.inner` is (or contains) a `tower::buffer::Buffer` might panic.

That is because cloning a `Buffer` drops the permit that was acquired in
`poll_ready`, meaning it is no longer ready and panic in `call`.

The solution is to use `mem::replace` to take the ready service and pass
that into the async block.

Fixes https://github.com/hyperium/tonic/issues/545
2021-05-07 09:45:35 +02:00
Juan J. Jimenez-AncaandGitHub 4b26e78109 add docs for health checks (#599) 2021-05-01 17:30:54 +02:00
Junichi SugiuraandGitHub db22c3568d Fix ListFeaturesStream return type on RouteGuide Tutorial (#586) 2021-04-04 21:06:33 +02:00
c54f24721c feat: Implement gRPC Reflection Service (#340)
Co-authored-by: Samani G. Gikandi <[email protected]>
2021-02-16 11:07:51 -05:00
Daniel MangumandGitHub cb9ed18518 Update tokio dependencies in tutorials to be compatible with tonic 0.4 (#549)
Bumps routeguide tutorial dependency to tokio 1.0 for compatability with
tonic 0.4. Also adds required rt-multi-thread feature and drops unused
and now unsupported stream feature.

Signed-off-by: hasheddan <[email protected]>
2021-02-02 14:22:03 -05:00
16yuki0702andGitHub 07d2f9825f Fix helloworld tutorial. (#546)
updated tutorial to use tokio 1.x.
2021-02-02 11:22:17 -05:00
Fuyang LiuandGitHub 729308b65b Better example code for google protos (#542)
* Better example code for google protos

* Try fix windows build

* Try fix windows build

* Remove generated code in repo
2021-01-21 13:59:23 -05:00
Jordan GouldandGitHub 4fe5beb353 Update Warp dependency in examples/Cargo.toml (#541) 2021-01-19 19:34:45 -05:00
Lucio FrancoandGitHub fda2d689d4 chore: Prepare 0.4 release (#538)
* Prepare `0.4` release

* Fix cargo issues
2021-01-15 13:38:36 -05:00
Lucio FrancoandGitHub 41c51f1c61 feat(transport): Fix TLS accept w/ peer certs (#535)
* feat(transport): Fix TLS accept w/ peer certs

* fix unused var

* fix feature flag imports

* spawn accept task
2021-01-15 11:59:26 -05:00
fdda5ae26a Upgrade to Tokio 1.0.0 ecosystem (#530)
* Upgrade Tonic to Tokio 1.0

Work in progress for updating Tonic to Tokio 1.0. Since tower has not
been released to crates.io, a git dependency is taken instead.

* Upgrade Tonic to Tokio 1.0 phase 2

* tonic: remove tower-* deps

* Apply suggestions from code review

Co-authored-by: Ed Marshall <[email protected]>
Co-authored-by: Lucio Franco <[email protected]>
2021-01-11 12:18:34 -05:00
Michael-J-WardandGitHub 3c2a4a2813 fixes routeguide tutorial URL to async book (#490) 2021-01-05 13:40:42 -05:00
Koki KatoandGitHub e7be352132 transport: impl Service for Channel instead of GrpcService (#482)
* transport: impl Service for Channel instead of GrpcService

This adds tower::Service impl for tonic::transport::Channel
and removes GrpcService impl declaration.

Channel still implements GrpcService, thanks to the general
impl declaration of GrpcService for types who implement Service.

Fixes #481.

* examples: stop using GrpcService to avoid ambiguity

* examples: add timeout example
2021-01-05 13:36:18 -05:00
Juan AlvarezandGitHub 0c69c378fd chore: clippy lints (#467)
* chore: clippy lints
2020-09-29 14:38:49 -05:00
Lucio FrancoandGitHub 9ea4a64a6c examples: Add tower-client example (#466) 2020-09-29 11:16:07 -04:00
37f6733f85 feat(transport): Add Router::into_service (#419)
Co-authored-by: Danny Hua <[email protected]>
2020-08-20 15:11:31 -04:00