Commit Graph

57 Commits

Author SHA1 Message Date
Adam Wright
eb49c30fdb Add an example to the readme for futures (#4)
And add the example under examples/ so we know when it breaks.
2016-10-04 16:25:57 -04:00
Tim Kuehn
ac7e2eedb2 Update readme 2016-09-14 01:47:21 -07:00
Tim Kuehn
6d1fbab73c Fix readme 2016-09-14 01:36:57 -07:00
Tim
be5f55c5f6 Extend snake_to_camel plugin to replace {} in the doc string with the original snake-cased ident. (#50)
* Extend snake_to_camel plugin to replace {} in the doc string with the origin snake-cased ident.

Also, track tokio-rs master.

This is really ad-hoc, undiscoverable, and unintuitive, but there's no way to programmatically create doc strings
in regular code, and I want to produce better doc strings for the associated types.

Given `fn foo_bar`:

Before: `/// The type of future returned by the function of the same name.`
After: ``/// The type of future returned by `{}`.``
    => `/// The type of future returned by foo_bar.`

* Fix some docs

* Use a helper fn on pipeline::Frame instead of handrolled match.

* Don't hide docs for ClientFuture.

It's exposed in the Connect impl of FutureService -- the tradeoff for not generating *another* item -- and hiding it breaks doc links.

* Formatting

* Rename snake_to_camel plugin => tarpc-plugins

* Update README

* Mangle a lot of names in macro expansion.

To lower the chance of any issues, prefix idents in service expansion with __tarpc_service.
In future_enum, prefix with __future_enum. The pattern is basically __macro_name_ident.

Any imported enum variant will conflict with a let binding or a function arg, so we basically
can't use any generic idents at all. Example:

    enum Req { request(..) }
    use self::Req::request;

    fn make_request(request: Request) { ... }

                    ^^^^^^^ conflict here

Additionally, suffix generated associated types with Fut to avoid conflicts with camelcased rpcs.
Why someone would do that, I don't know, but we shouldn't allow that wart.
2016-09-14 01:19:24 -07:00
Tim Kuehn
f76030ecd7 Correct typos 2016-09-06 14:05:32 -07:00
Tim Kuehn
b7952d3f47 Fix README Cargo.toml 2016-09-06 14:00:57 -07:00
Tim
246c09c876 Remove outdated potential improvement 2016-09-04 16:34:01 -07:00
Tim
e7cfbc1085 Update readme 2016-09-04 16:14:59 -07:00
Tim
7aabfb3c14 Rewrite using tokio (#44)
* Rewrite tarpc on top of tokio.

* Add examples

* Move error types to their own module.

Also, cull unused error variants.

* Remove unused fn

* Remove CanonicalRpcError* types. They're 100% useless.

* Track tokio master (WIP)

* The great error revamp.

Removed the canonical rpc error type. Instead, the user declares
the error type for each rpc:

In the above example, the error type is Baz. Declaring an error is
optional; if none is specified, it defaults to Never, a convenience
struct that wraps the never type (exclamation mark) to impl Serialize, Deserialize,
Error, etc. Also adds the convenience type StringError for easily
using a String as an error type.

* Add missing license header

* Minor cleanup

* Rename StringError => Message

* Create a sync::Connect trait.

Along with this, the existing Connect trait moves to future::Connect. The future
and sync modules are reexported from the crate root.

Additionally, the utility errors Never and Message are no longer reexported from
the crate root.

* Update readme

* Track tokio/futures master. Add a Spawn utility trait to replace the removed forget.

* Fix pre-push hook

* Add doc comment to SyncServiceExt.

* Fix up some documentation

* Track tokio-proto master

* Don't set tcp nodelay

* Make future::Connect take an associated type for the future.

* Unbox FutureClient::connect return type

* Use type alias instead of newtype struct for ClientFuture

* Fix benches/latency.rs

* Write a plugin to convert lower_snake_case idents/types to UpperCamelCase.

Use it to add associated types to FutureService instead of boxing the return futures.

* Specify plugin = true in snake_to_camel/Cargo.toml. Weird things happen otherwise.

* Add clippy.toml
2016-09-04 16:09:50 -07:00
Morton Fox
64ca851209 Fix the license link in the top strip (#48) 2016-08-26 21:42:40 -07:00
Dustin H
1738864d32 make documentation link go to latest version (#47) 2016-08-26 16:48:42 -07:00
Tim
683617674c Point documentation to docs.rs 2016-08-26 16:43:51 -07:00
Adam Wright
3c4932f55a Add gitter badge 2016-08-24 12:37:32 -07:00
Tim Kuehn
3cf8e440f7 Bump minor version. 2016-08-07 13:02:04 -07:00
Tim Kuehn
d8472dcd1c Update README to reflect latest version. 2016-07-28 20:48:07 -07:00
Tim Kuehn
801f09e9e6 Bump version to v0.5.0 2016-04-24 19:18:42 -07:00
Tim Kuehn
4d636d2882 Merge master into listener. 2016-04-24 18:28:30 -07:00
Tim Kuehn
166f1523d6 Update version in README 2016-04-24 17:52:08 -07:00
Tim Kuehn
bbfb4325d2 Simplify readme example 2016-03-16 20:49:38 -07:00
Tim Kuehn
8e5a44b423 Update README to list arbitrary transports as a feature. 2016-02-25 22:28:39 -08:00
Tim Kuehn
9827f75459 Fix examples 2016-02-24 23:33:03 -08:00
Maxime Bury
ece1cc60b9 Fix your typo 2016-02-20 18:43:31 -08:00
Tim Kuehn
9193357d60 Fix the README example. It broke again. :( 2016-02-20 01:29:22 -08:00
Tim Kuehn
99ba380825 Update readme version 2016-02-19 23:45:01 -08:00
Tim Kuehn
66cd136c6a Add a note about serde in the readme 2016-02-18 21:27:22 -08:00
Tim Kuehn
58cbe6f4ea Update README and service macro doc comment 2016-02-18 21:23:42 -08:00
Tim Kuehn
65c4d83c88 [breaking] Renamings and refactorings.
* Add a Config struct. `Client::new(addr, duration)` => `Client::new(addr, config)`
* `serve(addr, server, config)` => `server.spawn_with_config(addr, config)`
* Also added `server.spawn(addr)`
2016-02-18 20:40:08 -08:00
Tim Kuehn
0968760ef7 Make a note of AsyncClient and cargo doc in the readme 2016-02-18 15:28:41 -08:00
Tim Kuehn
ffee124526 List dependency info in readme 2016-02-18 08:49:20 -08:00
Tim Kuehn
a675551a31 Define RPC in README 2016-02-18 08:43:31 -08:00
Tim Kuehn
54883d6354 Make a line in the readme a bit cleaner 2016-02-18 01:20:20 -08:00
Garrett Squire
51e6bac2dc fix the example in the README 2016-02-17 23:25:33 -08:00
Tim Kuehn
9dd3d55744 Add some missing #[inline]s.
And add the optional fn len method to Packet's MapVisitor. Also add a link to documentation in the readme.
2016-02-15 02:20:27 -08:00
Tim Kuehn
02add8aa92 Update readme 2016-02-14 20:38:40 -08:00
Tim Kuehn
7d028f6076 Add crates.io shield 2016-02-12 11:13:58 -08:00
Tim
382190b20a Merge pull request #5 from tikue/additional-features
List some additional syntactic features in the readme
2016-02-12 10:41:52 -08:00
Tim Kuehn
73b5cae1d1 Coverage badge 2016-02-12 10:31:36 -08:00
Tim Kuehn
a966cd5a0c Add MIT license badge 2016-02-12 10:14:13 -08:00
Tim Kuehn
935fac9b96 List concurrent requests as a feature 2016-02-12 01:42:17 -08:00
Tim Kuehn
303cedac7b List some additional syntactic features 2016-02-12 01:26:57 -08:00
Tim Kuehn
3b44df7638 Add travis build info 2016-02-12 00:49:02 -08:00
Tim Kuehn
ae1573d8da Update readme.
Some planned improvements were out of date, and one major one was missing.
2016-02-11 23:10:46 -08:00
Tim
e0acd9dafd Consistently stylize tarpc in readme 2016-02-11 07:15:03 +05:30
Tim Kuehn
a58dea0ec5 Update license from dual Apache 2.0/MIT to just MIT. 2016-02-08 11:52:51 -08:00
Tim Kuehn
eb4b47b25b Merge branch 'async' into no-mod 2016-01-31 21:21:50 -08:00
Tim Kuehn
41c036fa0f Simplify the macro.
No longer create a submodule. It's up to the user to decide how to scope the macro invocation.
The preferred method will be to invoke within a dedicated rpc module.
2016-01-27 21:11:38 -08:00
Tim Kuehn
54dbd74e2f Replace planned generic serialization feature with backward-compatibility features 2016-01-26 22:03:46 -08:00
Tim Kuehn
25b7f4887e Add disclaimer to README 2016-01-26 21:48:02 -08:00
Tim Kuehn
9224dcd00e Add 'License' and 'Contributing' sections to README.
Also add .md file extension to CONTRIBUTING.
2016-01-21 11:10:13 -08:00
Tim Kuehn
a5a9ec3d4f Make separate section in the readme for additional features 2016-01-17 19:45:13 -08:00