Commit Graph
285 Commits
Author SHA1 Message Date
Lucio FrancoandGitHub eba7ec7b32 feat: Add gRPC interceptors (#232)
This change introduces proper gRPC interceptors that are avilable
regardless of the transport used. Each codegen service now produces an
additional method called `with_interceptor` that accepts a
`Interceptor`.

All examples have been updated to use this new style and interop has a
custom `tower::Service` middleware to echo the headers. There is also a
new `interceptor` example that shows basic usage.

BREAKING CHANGE: removed `interceptor_fn` and `intercep_headers_fn` from `transport` in favor of using `tonic::Interceptor`.
2020-01-13 21:26:08 -05:00
Juan AlvarezandLucio Franco 0fa2bf1cea feat(codec): Introduce Decoder/Encoder traits (#208)
BREAKING CHANGE: Add new `Decoder/Encoder` traits and use `EncodeBuf/DecodeBuf` over `BytesMut` directly.
2020-01-13 11:59:19 -05:00
Juan AlvarezandLucio Franco a41f55ab9d fix(build): Remove default impl for Server traits (#229)
BREAKING CHANGE: remove default implementations for server traits.
2020-01-13 09:42:14 -05:00
MarcelandLucio Franco dadc8186c2 chore: Upgrade to prost, prost-build and prost-derive 0.6 (#230) (#231) 2020-01-13 09:40:57 -05:00
Lucio FrancoandGitHub af807c3ccd feat(transport): Add server side peer cert support (#228)
* feat(transport): Add server side peer cert support
2020-01-11 14:17:19 -08:00
Johan AnderssonandLucio Franco 3be8bc1668 Run CI checks & tests on Windows and Mac (#206)
* Run CI checks & tests on Windows and Mac

* Fix uds windows compile

Co-authored-by: Lucio Franco <[email protected]>
2020-01-11 14:16:54 -08:00
Lucio FrancoandGitHub 6673f91f1f chore: Remove required bytes dep and clean up deny (#227)
* chore: Remove required bytes dep and clean up deny

* Fix interop test cli args
2020-01-11 12:48:24 -08:00
Lucio FrancoandGitHub 18e944bd28 chore: Update prost codec to not use workaround (#226) 2020-01-11 12:27:00 -08:00
Adam JacobandLucio Franco 8997f47b6d chore: Upgrade to prost master and bytes 0.5 (#224)
This upgrades tonic to prost's master branch, and moves everything to
bytes 0.5.
2020-01-11 11:05:08 -08:00
Adam JacobandLucio Franco e034288c37 feat(build): Add extern_path config support (#223)
Adds support for prost-build's "extern_path" feature. This allows you to
reference another prost-generated protobuf, including any traits that
may have been defined for it, from another crate or location.
2020-01-10 15:31:10 -05:00
Lucio FrancoandGitHub a66595bfe3 feat(transport): Add serve_with_incoming_shutdown (#220) 2020-01-08 11:00:57 -05:00
Juan AlvarezandLucio Franco faa26ac152 chore(example) Fix routeguide errors (#218)
* chore(example) Fix routeguide errors

* remove redundant line
2020-01-07 16:53:30 -05:00
Linus FärnstrandandLucio Franco ec1f37e4b4 fix(transport): Improve Error type (#217) 2020-01-04 14:24:26 -05:00
Juan AlvarezandLucio Franco 49ce265954 chore: Add decode benchmarks (#207)
* disable current benchmarks

* temporarily expose Streaming constructor

* hide Streaming constructor from docs

* remove crossbeam-queue from deny skip list

* add decode benches

* fmt

* use Bytes as MockDecoder Item
2019-12-22 16:51:34 -05:00
Thomas MayandLucio Franco 59d008db7e chore(docs): Fix examples link (#202)
* url is just examples, not tonic-examples

* Change root directory from tonic-examples to examples.  Matches current directory structure.
2019-12-20 22:39:39 -05:00
Johan AnderssonandLucio Franco 5e6b1fe487 chore(ci): Switch to use GitHub Action for cargo-deny (#201) 2019-12-20 11:41:37 -05:00
Lucio FrancoandGitHub 61a770dedf chore: Prepare 0.1.0-beta.1 release (#200)
* chore: Prepare `0.1.0-beta.1` release

* Update changelog

* Fix tower paths
2019-12-19 18:44:25 -05:00
Lucio FrancoandGitHub 8efdbb4631 chore: Use released version of tower (#199)
* chore: Use released version of tower

* Update the rest
2019-12-19 18:31:40 -05:00
Juan AlvarezandLucio Franco 4e5c6c8f23 chore(example): update guides to 0.1-beta.1 (#198)
* update routeguide

* update helloworld

* depend on tonic beta.1

* Apply suggestions from code review

Co-Authored-By: Lucio Franco <[email protected]>

Co-authored-by: Lucio Franco <[email protected]>
2019-12-19 18:23:25 -05:00
Fletcher NicholandLucio Franco 6566b237a1 chore(docs): Fix routeguide tutorial source links (#195)
Signed-off-by: Fletcher Nichol <[email protected]>
2019-12-17 16:21:13 -05:00
Brandon WilliamsandLucio Franco c99d13c6e6 fix(transport): Fix infinite recursion in poll_ready (#192)
b90c340 (feat(transport): Allow custom IO and UDS example (#184),
2019-12-13) changed the Connector type to be more generic instead of
only allowing the HttpConnector type, during this change the
`Service::poll_ready` impl was changed from calling
`MakeConnection::poll_ready` on `self.http` to `self` resulting in
infinite recursion due to the blanket imple of
`MakeConnection::poll_ready` calling `Service::poll_ready`.

This fixes the bug by calling `MakeConnection::poll_ready` on
`self.inner` instead of `self`.

Fixes #191
2019-12-15 18:36:10 -05:00
Juan AlvarezandLucio Franco 3a5c66d5f2 fix(build): snake_case service names (#190) 2019-12-14 15:08:28 -05:00
Lucio FrancoandGitHub 82facb6283 chore: Apply clippy (#189) 2019-12-13 23:55:49 -05:00
Lucio FrancoandGitHub 502491a590 fix(transport): Remove with_rustls for tls config (#188) 2019-12-13 20:31:22 -05:00
Lucio FrancoandGitHub 3eb76abf9f feat(transport): Add remote_addr to Request on the server si… (#186) 2019-12-13 20:25:00 -05:00
Lucio FrancoandGitHub 0505dff65a fix(transport): Fix lazily reconnecting (#187)
Closes #167
2019-12-13 20:24:45 -05:00
Lucio FrancoandGitHub 97d5363e2b fix(build): Remove async ready (#185)
* fix(build): Remove async ready

* fix build
2019-12-13 18:19:23 -05:00
Lucio FrancoandGitHub b90c340800 feat(transport): Allow custom IO and UDS example (#184)
Closes #136
2019-12-13 17:14:49 -05:00
Artem VorotnikovandLucio Franco 7077d8dfd0 chore(docs): Fix routeguide tutorial link (#183) 2019-12-13 13:10:43 -05:00
Lucio FrancoandGitHub bab1d5d255 chore: Fix readme links (#181) 2019-12-12 12:02:01 -05:00
Lucio FrancoandGitHub d9a481baef chore: Reorganize examples and interop crates (#180)
* chore: Reorganize examples and interop crates

* fix interop tests
2019-12-12 11:53:15 -05:00
Brandon WilliamsandLucio Franco f096a238ac chore(examples): add helloworld-client-blocking (#179)
Add an example of using a tonic client in a synchronous environment.
2019-12-12 09:48:27 -05:00
Lucio FrancoandGitHub 8f1a25278e chore: Remove unused files (#178) 2019-12-11 22:32:48 -05:00
Lucio FrancoandGitHub f46a45401d feat(transport): Add tracing support to server (#175)
* feat(transport): Add tracing to server

* Add tracing example

* Fix duplicate versions of tracing-subscriber
2019-12-11 19:45:11 -05:00
Lucio FrancoandGitHub 1626c2eae0 chore(transport): Clean up server and channel (#174)
* chore(transport): Clean up server and channel

* Fix tls feature compilation
2019-12-11 18:19:11 -05:00
Lucio FrancoandGitHub 0847b67c4e fix(build): Allow creating multiple services in the same package (#173)
BREAKING CHANGE: Build will now generate each service client and server into their own modules.
2019-12-11 16:22:03 -05:00
xd009642andLucio Franco 393a57eade feat(transport): Add server graceful shutdown (#169) 2019-12-11 16:07:05 -05:00
Lucio FrancoandGitHub cce550be85 chore: More clean up (#172)
* Clean up client and codec

* Clean up codegen, server and upgrade hyper
2019-12-11 16:05:30 -05:00
Adam HarveyandLucio Franco 48a69bb36b chore(examples): enable the macros feature for tokio::main (#166)
tokio 0.2 split out its macros into a feature that is disabled by
default, so we'll re-enable it to allow example builds to work once
more.
2019-12-06 19:51:59 -05:00
Juan AlvarezandLucio Franco 0eb9991b9f feat: expose tcp_nodelay for clients and servers (#145)
* expose tcp_nodelay

* do not depend on difference versions of rand
2019-12-06 17:07:24 -05:00
Juan AlvarezandLucio Franco 6b43f63578 remove tower cargo patches (#164) 2019-12-06 12:23:37 -05:00
Philippe GASSMANNandLucio Franco caccfad7e7 feat(transport): Expose tcp keepalive to clients & servers (#151) 2019-12-06 11:56:06 -05:00
Lucio FrancoandGitHub 3387ef900f Upgrade to tokio 0.2 (#163) 2019-12-06 00:09:46 -05:00
Lucio FrancoandGitHub 4471a5f19c chore(interop): Update console dep (#155) 2019-11-26 09:50:01 -05:00
James NugentandLucio Franco 33df3badb2 Temporarily allow duplicate crossbeam-queue crates (#153)
`crossbeam-queue` is currently brought in both by Rayon (up to date v0.2.0) and
Hyper's dependency chain (0.1.x). Since Hyper is in the process of updating
things, I proposed we temporarily allow this to pass CI and revisit it when
there is a new release of Hyper or the relevant dependencies thereof.
2019-11-25 16:18:52 -05:00
Juan AlvarezandJames Nugent 354d4fdc35 fix(examples): Remove use of VecDeque as a placeholder type (#143) 2019-11-19 13:29:33 +00:00
Juan AlvarezandLucio Franco f9502dfd7e fix: Sanitize custom metadata (#138) 2019-11-15 13:44:19 +01:00
Juan AlvarezandLucio Franco 997241c43f feat: Add Status constructors (#137)
Co-Authored-By: Lucio Franco <[email protected]>
2019-11-15 13:32:34 +01:00
James NugentandLucio Franco 85060500f3 fix(transport): Remove support for OpenSSL (#141)
BREAKING CHANGE: Remove support for OpenSSL within the transport.
2019-11-15 13:30:42 +01:00
Nicholas BishopandLucio Franco c63c107560 fix(docs): typo in lib.rs (#142) 2019-11-14 23:34:07 +01:00