Tim Kuehn
2bae148529
Address clippy lints
2020-07-27 00:04:45 -07:00
Tim Kuehn
42a2e03aab
Add better diagnostics for missing 'async' in impls using #[tarpc::server]
2020-07-26 23:47:48 -07:00
Tim Kuehn
b566d0c646
Use #[tarpc::server] in example-service
2020-07-26 18:26:41 -07:00
Jon Cinque
b359f16767
Add concurrent tests using join and join_all
...
These tests are essentially copies of the `concurrent` test,
specifically using `join` and `join_all`. Note that for the `join_all`
example to work, all of the `Client` clones must be created before *any*
requests are added, otherwise there will be a lifetime problem with the
second request, saying that second client, `c2`, is still borrowed when
`req1` is dropped. It would require a larger redesign to fix this
issue.
2020-07-24 09:51:05 -07:00
Greg Fitzgerald
f8681ab134
Migrate examples to tarpc::server
2020-07-22 14:03:23 -07:00
Tim Kuehn
7e521768ab
Prepare for v0.21.0 release.
v0.21.0
2020-06-26 20:05:02 -07:00
Tim Kuehn
e9b1e7d101
Use #[non_exhaustive] in lieu of _NonExhaustive enum variant.
2020-06-26 19:47:20 -07:00
Taiki Endo
f0322fb892
Remove uses of pin_project::project attribute
...
pin-project will deprecate the project attribute due to some unfixable
limitations.
Refs: https://github.com/taiki-e/pin-project/issues/225
2020-06-05 20:34:44 -07:00
Patrick Elsen
617daebb88
Add tarpc::server proc-macro as syntactic sugar for async methods. ( #302 )
...
The tarpc::server proc-macro can be used to annotate implementations of
services to turn async functions into the proper declarations needed
for tarpc to be able to call them.
This uses the assert_type_eq crate to check that the transformations
applied by the tarpc::server proc macro are correct and lead to code
that compiles.
2020-05-16 10:25:25 -07:00
Tim Kuehn
a11d4fff58
Remove raii_counter
2020-04-22 02:13:02 -07:00
Tim
bf42a04d83
Move the request timeout so that it surrounds the entire call, not just the response future. ( #295 )
...
* Move the request timeout so that it surrounds the entire call, not just the response future.
This will enable the timeout earlier, so that a backlog in the outbound request buffer can not cause requests to stall indefinitely.
* Run cargo fmt
2020-02-25 14:42:40 -08:00
Tim Kuehn
06528d6953
Fix clippy lint.
2019-12-19 12:28:26 -08:00
Tim Kuehn
9f00395746
Replace _non_exhaustive fields with #[non_exhaustive] attribute.
...
The attribute landed on stable rust (1.40.0) today.
Fixes https://github.com/google/tarpc/issues/275
2019-12-19 12:14:34 -08:00
Tim Kuehn
e0674cd57f
Make pre-push run on rust stable.
2019-12-19 12:06:06 -08:00
Tim Kuehn
7e49bd9ee7
Clean up badges a bit.
2019-12-16 13:21:00 -08:00
Tim Kuehn
8a1baa9c4e
Remove usage of unsafe in rpc::client::channel.
...
pin_project is actually able to handle the complexities of enum Futures.
2019-12-16 11:10:57 -08:00
Oleg Nosov
31c713d188
Allow raw identifiers + fixed naming + place all code generation methods in impl ( #291 )
...
Allows defining services using raw identifiers like:
```rust
pub mod service {
#[tarpc::service]
pub trait r#trait {
async fn r#fn(x: i32) -> Result<u8, String>;
}
}
```
Also:
- Refactored names (ident -> type)
- All code generation methods placed in impl
2019-12-12 10:13:57 -08:00
Tim Kuehn
d905bc1591
Prepare for tarpc release v0.20.0
v0.20.0
2019-12-11 20:47:56 -08:00
Tim Kuehn
7f946c7f83
Make tokio a hard dependency.
...
Fixes #289
2019-12-11 20:08:36 -08:00
Tim Kuehn
36cfdb6c6f
Fix tokio dependency for example-service
2019-12-11 20:01:06 -08:00
Tim Kuehn
dbabe9774f
Clean up proc macro code to make clippy happy.
...
I made a separate TokenStream-returning fn for each item in the previously-huge quote block.
The service fn now primarily performs the duty of creating idents and joining all the TokenStreams.
2019-12-11 17:20:03 -08:00
Tim Kuehn
deb041b8d3
Replace travis-ci badge with github CI workflow badge
2019-12-11 12:54:56 -08:00
Oleg Nosov
85d49477f5
Updated and simplified macros ( #290 )
...
* syn updated to latest version
* quote updated to latest version
* proc-macro-2 updated to latest version
* Performance improvements
* Don't create unnecessary TokenStreams for output types
2019-12-11 12:28:24 -08:00
Tim Kuehn
45af6ccdeb
Workaround for pubsub example hanging.
...
The publisher client isn't being dropped when the async fn returns. It
could potentially be something strange in the ThreadPool executor.
2019-12-07 22:01:41 -08:00
Tim Kuehn
917c0c5e2d
Use tokio::time::delay_for in lieu of thread::sleep.
2019-12-07 21:28:45 -08:00
Artem Vorotnikov
bbbd43e282
Unify serde transports.
...
This PR obsoletes the JSON and Bincode transports and instead introduces a unified transport that
is generic over any tokio-serde serialization format as well as AsyncRead + AsyncWrite medium.
This comes with a slight hit for usability (having to manually specify the underlying transport
and codec), but it can be alleviated by making custom freestanding connect and listen fns.
2019-12-07 20:58:08 -08:00
Artem Vorotnikov
f945392b5a
Use tokio/stream feature for json-transport
2019-12-07 09:54:33 -08:00
Artem Vorotnikov
f4060779e4
Add GitHub workflow
2019-12-05 20:13:14 -08:00
Artem Vorotnikov
7cc8d9640b
Fix clippy warnings
2019-12-05 17:39:53 -08:00
Artem Vorotnikov
7f871f03ef
Improve Travis configuration ( #282 )
...
* Improve Travis configuration
* Replace 0.0.0.0 with localhost in tests
2019-11-28 14:06:35 -08:00
Artem Vorotnikov
709b966150
Update to Tokio 0.2 and futures 0.3 ( #277 )
2019-11-27 19:53:44 -08:00
Artem Vorotnikov
5e19b79aa4
Unite most of tarpc into a single crate
2019-11-26 13:08:18 -08:00
Tim Kuehn
6eb806907a
Replace Gitter badge with Discord badge.
2019-11-22 14:28:24 -08:00
Tim Kuehn
8250ca31ff
Remove --no-default-features from pre-push hook.
...
It seemingly doesn't work at the root of a virtual workspace. Not sure if this is new behavior or just a new explicit error message.
2019-11-15 17:19:08 -08:00
Tim Kuehn
7cd776143b
Fix typo
2019-11-15 17:12:00 -08:00
Artem Vorotnikov
5f6c3d7d98
Port to pin-project
2019-10-09 14:12:24 -07:00
Artem Vorotnikov
915fe3ed4e
Use the JSON transport in examples
2019-10-08 19:18:49 -07:00
Artem Vorotnikov
d8c7b9feb2
JSON transport: use Tokio resolver for connect()
2019-10-08 18:03:25 -07:00
Artem Vorotnikov
5ab3866d96
Add Unpin note
2019-10-08 17:15:17 -07:00
Artem Vorotnikov
184ea42033
Upgrade json-transport to Tokio 0.2
2019-10-08 17:15:17 -07:00
Artem Vorotnikov
014c209b8e
Do not serialize _non_exhaustive field
2019-10-03 13:09:26 -07:00
Artem Vorotnikov
e91005855c
Remove remaining feature flags
2019-10-02 13:07:37 -07:00
Artem Vorotnikov
46bcc0f559
tokio 0.2.0-alpha.4
2019-08-30 09:29:18 -07:00
Artem Vorotnikov
61322ebf41
Clippy fixes
2019-08-29 11:34:38 -07:00
Artem Vorotnikov
db0c9c4182
Cut type_alias_impl_trait feature flag
2019-08-29 11:34:38 -07:00
Artem Vorotnikov
9ee3011687
Update to Tokio 0.3.0-alpha.3
2019-08-29 11:34:38 -07:00
Artem Vorotnikov
5aa4a2cef6
tokio 0.2.0-alpha.2
2019-08-19 23:13:06 -07:00
Artem Vorotnikov
f38a172523
Format code with rustfmt
2019-08-19 13:20:21 -07:00
Tim Kuehn
66dbca80b2
Add missing feature, "compat", back to json-transport dependency on futures-preview.
2019-08-14 09:16:44 -07:00
Tim
61377dd4ff
Fix comment in example service
...
It referred to bincode instead of json.
2019-08-14 08:32:49 -07:00