mirror of
https://github.com/OMGeeky/tarpc.git
synced 2025-12-29 07:40:14 +01:00
122 lines
5.0 KiB
Markdown
122 lines
5.0 KiB
Markdown
## 0.13.0 (2018-10-16)
|
|
|
|
### Breaking Changes
|
|
|
|
Version 0.13 marks a significant departure from previous versions of tarpc. The
|
|
API has changed significantly. The tokio-proto crate has been torn out and
|
|
replaced with a homegrown rpc framework. Additionally, the crate has been
|
|
modularized, so that the tarpc crate itself contains only the macro code.
|
|
|
|
### New Crates
|
|
|
|
- crate rpc contains the core client/server request-response framework, as well as a transport trait.
|
|
- crate bincode-transport implements a transport that works almost exactly as tarpc works today (not to say it's wire-compatible).
|
|
- crate trace has some foundational types for tracing. This isn't really fleshed out yet, but it's useful for in-process log tracing, at least.
|
|
|
|
All crates are now at the top level. e.g. tarpc-plugins is now tarpc/plugins rather than tarpc/src/plugins. tarpc itself is now a *very* small code surface, as most functionality has been moved into the other more granular crates.
|
|
|
|
### New Features
|
|
- deadlines: all requests specify a deadline, and a server will stop processing a response when past its deadline.
|
|
- client cancellation propagation: when a client drops a request, the client sends a message to the server informing it to cancel its response. This means cancellations can propagate across multiple server hops.
|
|
- trace context stuff as mentioned above
|
|
- more server configuration for total connection limits, per-connection request limits, etc.
|
|
|
|
### Removals
|
|
- no more shutdown handle. I left it out for now because of time and not being sure what the right solution is.
|
|
- all async now, no blocking stub or server interface. This helps with maintainability, and async/await makes async code much more usable. The service trait is thusly renamed Service, and the client is renamed Client.
|
|
- no built-in transport. Tarpc is now transport agnostic (see bincode-transport for transitioning existing uses).
|
|
- going along with the previous bullet, no preferred transport means no TLS support at this time. We could make a tls transport or make bincode-transport compatible with TLS.
|
|
- a lot of examples were removed because I couldn't keep up with maintaining all of them. Hopefully the ones I kept are still illustrative.
|
|
- no more plugins!
|
|
|
|
## 0.10.0 (2018-04-08)
|
|
|
|
### Breaking Changes
|
|
Fixed rustc breakage in tarpc-plugins. These changes require a recent version of rustc.
|
|
|
|
## 0.10.0 (2018-03-26)
|
|
|
|
### Breaking Changes
|
|
Updates bincode to version 1.0.
|
|
|
|
## 0.9.0 (2017-09-17)
|
|
|
|
### Breaking Changes
|
|
Updates tarpc to use tarpc-plugins 0.2.
|
|
|
|
## 0.8.0 (2017-05-05)
|
|
|
|
### Breaking Changes
|
|
This release updates tarpc to use serde 1.0.
|
|
As such, users must also update to use serde 1.0.
|
|
The serde 1.0 [release notes](https://github.com/serde-rs/serde/releases/tag/v1.0.0)
|
|
detail migration paths.
|
|
|
|
## 0.7.3 (2017-04-26)
|
|
|
|
This release removes the `Sync` bound on RPC args for both sync and future
|
|
clients. No breaking changes.
|
|
|
|
## 0.7.2 (2017-04-22)
|
|
|
|
### Breaking Changes
|
|
This release updates tarpc-plugins to work with rustc master. Thus, older
|
|
versions of rustc are no longer supported. We chose a minor version bump
|
|
because it is still source-compatible with existing code using tarpc.
|
|
|
|
## 0.7.1 (2017-03-31)
|
|
|
|
This release was purely doc fixes. No breaking changes.
|
|
|
|
## 0.7 (2017-03-31)
|
|
|
|
### Breaking Changes
|
|
This release is a complete overhaul to build tarpc on top of the tokio stack.
|
|
It's safe to assume that everything broke with this release.
|
|
|
|
Two traits are now generated by the macro, `FutureService` and `SyncService`.
|
|
`SyncService` is the successor to the original `Service` trait. It uses a configurable
|
|
thread pool to serve requests. `FutureService`, as the name implies, uses futures
|
|
to serve requests and is single-threaded by default.
|
|
|
|
The easiest way to upgrade from a 0.6 service impl is to `impl SyncService for MyService`.
|
|
For more complete information, see the readme and the examples directory.
|
|
|
|
## 0.6 (2016-08-07)
|
|
|
|
### Breaking Changes
|
|
* Updated serde to 0.8. Requires dependents to update as well.
|
|
|
|
## 0.5 (2016-04-24)
|
|
|
|
### Breaking Changes
|
|
0.5 adds support for arbitrary transports via the
|
|
[`Transport`](tarpc/src/transport/mod.rs#L7) trait.
|
|
Out of the box tarpc provides implementations for:
|
|
|
|
* Tcp, for types `impl`ing `ToSocketAddrs`.
|
|
* Unix sockets via the `UnixTransport` type.
|
|
|
|
This was a breaking change: `handler.local_addr()` was renamed
|
|
`handler.dialer()`.
|
|
|
|
## 0.4 (2016-04-02)
|
|
|
|
### Breaking Changes
|
|
* Updated to the latest version of serde, 0.7.0. Because tarpc exposes serde in
|
|
its API, this forces downstream code to update to the latest version of
|
|
serde, as well.
|
|
|
|
## 0.3 (2016-02-20)
|
|
|
|
### Breaking Changes
|
|
* The timeout arg to `serve` was replaced with a `Config` struct, which
|
|
currently only contains one field, but will be expanded in the future
|
|
to allow configuring serialization protocol, and other things.
|
|
* `serve` was changed to be a default method on the generated `Service` traits,
|
|
and it was renamed `spawn_with_config`. A second `default fn` was added:
|
|
`spawn`, which takes no `Config` arg.
|
|
|
|
### Other Changes
|
|
* Expanded items will no longer generate unused warnings.
|