Commit Graph
100 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
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
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
Lucio FrancoandGitHub a66595bfe3 feat(transport): Add serve_with_incoming_shutdown (#220) 2020-01-08 11:00:57 -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
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
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
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
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
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
Lucio FrancoandGitHub 5fe21f3b24 chore: Prepare alpha.6 release (#130) 2019-11-10 17:40:51 +01:00
Lucio FrancoandGitHub 23e7695800 fix(transport): Load balance connecting panic (#128)
Closes #127
2019-11-10 16:28:05 +01:00
Lucio FrancoandGitHub 23f648b517 chore(docs): Add docs about Channel multiplexing (#113)
Signed-off-by: Lucio Franco <[email protected]>
2019-11-03 20:05:21 -05:00
Lucio FrancoandGitHub 3a39b1e7c8 chore: Prepare alpha.5 release (#108)
Signed-off-by: Lucio Franco <[email protected]>
2019-10-31 14:26:35 -04:00
Lucio FrancoandGitHub 5c2f4dba32 feat(transport): Change channel connect to be async (#107)
This makes it so you can check if the initial connection
is established. Before this we used reconnect which would
lazily attempt to connect. So if you were trying to connect
to a non existant Server you wouldn't find out until after
you attempted your first RPC. This simplifies everything
by allowing you connect before creating the RPC client.

BREAKING CHANGE: `Endpoint::channel` was removed in favor of
an async `Endpoint::connect`.
2019-10-31 14:09:40 -04:00
108bad0d86 chore: Add cargo-hack to check features (#105)
* chore: Add `cargo-hack` to check features

Signed-off-by: Lucio Franco <[email protected]>

* Update .github/workflows/CI.yml

Co-Authored-By: Taiki Endo <[email protected]>
2019-10-31 12:19:52 -04:00
Lucio FrancoandGitHub 3ce61d9860 fix(codec): Enforce encoders/decoders are Sync (#84)
Closes #81
2019-10-30 15:00:31 -04:00
Lucio FrancoandGitHub 5b4f4689a2 feat(transport): Add service multiplexing/routing (#99)
* feat(transport): Add service multiplexing/routing

This change introduces a new "router" built on top of
`transport::Server` that allows one to run multiple
gRPC services on the same socket.

```rust
Server::builder()
    .add_service(greeter)
    .add_service(echo)
    .serve(addr)
    .await?;
```

There is also a new `multiplex` example showcasing
server side service multiplexing and client side
service multiplexing.

BREAKING CHANGES: `Server::serve` is now crate private
and all services must be added via `Server::add_service`.
Codegen also returns just a `Service` now instead of a
`MakeService` pair.

Closes #29

Signed-off-by: Lucio Franco [email protected]
2019-10-29 16:32:04 -04:00
Lucio FrancoandGitHub a17049f1f7 fix(codec): Remove custom content-type (#104)
This removes custom content-types in favor of
just using `application/grpc`. There is some
confusion around the specification but most
grpc implementations ignore the `+` and
anything after.
2019-10-29 16:12:41 -04:00
Lucio FrancoandGitHub 77fc74038f chore: Prepare alpha.4 release (#91)
* chore: Prepare alpha.4 release

* Update changelog
2019-10-23 15:09:49 -04:00
Lucio FrancoandGitHub 1dbde95d84 fix(build): Fix service and rpc name conflict (#92)
Closes #89
2019-10-23 15:01:04 -04:00
Lucio FrancoandGitHub 18c20a9c0d chore(readme): Remove readme examples (#79)
* chore(readme): Remove readme examples

This swaps out the readme example to use instead a link to the
routeguide tutorial.

* Add helloworld tutorial
2019-10-23 10:13:14 -04:00
Lucio FrancoandGitHub 8cddf8a12c chore: Prepare 0.1.0-alpha.3 release (#65) 2019-10-09 17:27:15 -04:00
Lucio FrancoandGitHub 4628ff0258 chore: Prepare 0.1.0-alpha.2 release (#58)
Signed-off-by: Lucio Franco <[email protected]>
2019-10-07 22:01:59 -04:00
Lucio FrancoandGitHub 01e72d9a95 chore(build): Fix wrong output type used in replace (#50) 2019-10-05 14:18:13 -04:00
Lucio FrancoandGitHub 4e1fcece15 fix(codegen): Use wellknown types from prost-types (#49)
This change introduces the ability to let prost-build
provide the fully qualifed type path for types that
start with `google.protobuf`.
2019-10-05 13:16:09 -04:00
Lucio FrancoandGitHub ed3e7e95a5 fix(codec): Fix buffer decode panic on full (#43)
* fix(codec): Fix buffer decode panic on full

This is a naive fix for the buffer growing beyond capacity
and producing a panic. Ideally we should do a better job
of not having to allocate for new messages by using
a link list.

* fmt
2019-10-04 19:17:41 -04:00
Lucio FrancoandGitHub 4559613c37 feat(codgen): Add default implementations for the generated serve… (#27)
* Rename servce -> server

* Add default impl for server trait
2019-10-02 16:01:44 -04:00
Lucio FrancoandGitHub 2670b349f9 fix(codegen): Fix Empty protobuf type and add unimplemented (#26)
* Add license attribute to tonic-build

* fix(codegen): Fix Empty protobuf type and add unimplemented

* Remove syn full feature
2019-10-01 23:46:54 -04:00
Lucio Franco 2734d3af28 Point tonic to root readme 2019-10-01 22:32:06 -04:00
Lucio Franco c1db64244e Fix spelling of helloworld 2019-10-01 22:15:44 -04:00
Lucio FrancoandGitHub a282b6682d chore(release): Prepare 0.1.0-alpha.1 release (#24) 2019-10-01 22:13:52 -04:00
Lucio FrancoandGitHub 8f80d0f6d1 chore(docs): Update tonic-build docs (#22) 2019-10-01 19:34:45 -04:00
Lucio Franco 09c77d4713 Attempt to make CI work for PRs 2019-10-01 19:27:59 -04:00
Lucio FrancoandGitHub 40973238d6 Add CI workflow (#23)
* Add CI workflow

* Delete interop.yml

* Delete test.yml

* deny warnings

* Fix unused mut
2019-10-01 19:26:17 -04:00
Lucio Franco b8483b92f9 Update logos 2019-10-01 17:53:10 -04:00
Lucio Franco bee8acd8c3 more readme updates 2019-10-01 17:20:22 -04:00
Lucio Franco 8aa4e2a790 Update docs logo 2019-10-01 17:10:00 -04:00
Lucio Franco 08d8795d17 more docs 2019-10-01 17:08:32 -04:00
Lucio Franco ca69b41def more assets and readme cleanup 2019-10-01 16:48:10 -04:00
Lucio Franco e02e814cee more readme cleanup 2019-10-01 16:45:13 -04:00
Lucio Franco 3c1b2e4bb5 more readme updates 2019-10-01 16:40:42 -04:00
Lucio FrancoandGitHub e53fa13457 Update README.md 2019-10-01 16:37:50 -04:00
Lucio Franco 9355292373 add new banner 2019-10-01 16:33:20 -04:00
Lucio Franco 5c3cd1cce4 fm 2019-10-01 16:29:36 -04:00
Lucio Franco 9af614e5f7 fix examples 2019-09-30 19:36:18 -04:00
Lucio Franco c5042b14c3 Fix tests 2019-09-30 19:13:27 -04:00
Lucio Franco cb325c69a7 fmt 2019-09-30 14:10:38 -04:00
Lucio Franco 35c2422cf0 Merge branch 'master' of github.com:LucioFranco/tonic 2019-09-30 14:10:33 -04:00
Lucio Franco dd327faee2 add more to cargo toml and fix openssl 2019-09-30 14:10:25 -04:00
Lucio Franco 49872ce904 more readme improvements 2019-09-29 22:59:15 -04:00
Lucio Franco f4336115c8 more readme work 2019-09-29 22:55:33 -04:00
Lucio Franco 6ab906d036 remove tracing from docs 2019-09-29 22:55:16 -04:00
Lucio Franco a9f7992585 Remove more tODO's 2019-09-29 22:38:28 -04:00
Lucio Franco d81ca1ae56 rename tonic 2019-09-29 21:51:39 -04:00
Lucio Franco 5c4a2304d5 add badges 2019-09-29 21:50:47 -04:00
Lucio Franco 63770cdc2e more clean up 2019-09-29 21:43:16 -04:00
Lucio Franco 701f6965b0 more css 2019-09-29 21:42:36 -04:00
Lucio Franco 5e2447cb5a fix width 2019-09-29 21:42:15 -04:00
Lucio Franco 02487bec3a add readme and templates 2019-09-29 21:41:08 -04:00
Lucio Franco 529c3fc0ab Add examples readme 2019-09-29 21:01:29 -04:00
Lucio Franco a8ef9d6c42 Add tls example with rustls 2019-09-29 19:45:05 -04:00
Lucio Franco 2c2b7d7904 Add auth and lb example 2019-09-29 18:33:28 -04:00
Lucio Franco 772ac84409 Bump toolchain to 1.39-beta 2019-09-29 17:14:46 -04:00
Lucio Franco b131e63ffb Add more assets 2019-09-29 17:11:11 -04:00
Lucio Franco dfa0cf8d00 add assets 2019-09-29 17:08:29 -04:00
Lucio Franco a35ef96a03 Add docs to transport and refactor some api's 2019-09-29 17:04:42 -04:00
Lucio Franco 1d9e3daa07 Remove generated doc comment test 2019-09-29 10:39:57 -04:00
Lucio Franco d2355ed83c fmt 2019-09-25 20:54:13 -04:00
Lucio Franco 5f7c39faad add more docs 2019-09-24 23:26:56 -04:00
Lucio Franco 80e2771aed fmt and docs 2019-09-24 21:41:55 -04:00
Lucio Franco d7484e352a more readmeupdates 2019-09-24 21:33:03 -04:00
Lucio Franco 6c811140ec Try readme banner 2019-09-24 21:32:01 -04:00
Lucio Franco 0fc432e578 Dont run CI on pr events 2019-09-24 21:04:35 -04:00
Lucio Franco 41d0f6ac5e more feature flgs 2019-09-24 18:32:39 -04:00
Lucio Franco a37640c282 Fix doctest 2019-09-24 16:09:26 -04:00
Lucio Franco 1e579d1bd4 Fix rustfmt in tonic-build 2019-09-24 15:41:09 -04:00
Lucio Franco 60c9629630 Refactor all of the tls 2019-09-24 14:32:16 -04:00
Lucio Franco ffba9ef6d2 pin hyper version 2019-09-23 22:08:14 -04:00
Lucio Franco 4a870122c0 fmt 2019-09-23 21:12:49 -04:00
Lucio Franco 72a0ffbbab Merge branch 'master' of github.com:LucioFranco/tonic 2019-09-23 21:00:41 -04:00
Lucio Franco bc500963b1 Merge branch 'master' of github.com:LucioFranco/tonic 2019-09-23 17:09:25 -04:00
Lucio Franco 95576f24c9 Add more docs 2019-09-23 17:09:20 -04:00
Lucio Franco cccc008366 todo clean up 2019-09-22 12:45:19 -05:00
Lucio Franco a7ee26cd3b Use server errorkind 2019-09-21 16:49:47 -06:00
Lucio Franco 1c2905255e fix ci? 2019-09-21 16:10:20 -06:00
Lucio Franco 0dd0decccd ci check PR 2019-09-21 16:04:43 -06:00
Lucio Franco 782da6f0e5 implement last interop test 2019-09-21 16:02:10 -06:00