Hi Christian,
I can see how the Redstone framework does look similar. However the RPC package was actually inspired by the Google Cloud Endpoints,
https://cloud.google.com/endpoints, framework for python, java, etc.
We wanted to have a similar model where a developer could easily write a REST API and not have to worry about routing the request or serializing data between the wire format and the method parameters, except we wanted it to work in general and not just Google AppEngine.
One thing where the RPC package differs from Redstone is the automatic serialization of class to the wire format and back. E.g. you can define a normal Dart class and use it as a parameter to your method and it will automatically be serialized to the network wire format and back to a Dart class.
Another key difference between the RPC package and Redstone is the RPC package's support for providing a Discovery Document which is used to generate a client stub library in a variety of languages. This makes it very easy to create a client calling the server APIs, see
https://github.com/dart-lang/rpc#calling-the-api, since there is no need to serialize data on the client side or create HTTP request using the correct URLs etc. It is all automatically generated.
You can find more information about the Discovery Document format at
https://developers.google.com/discovery/v1/reference/apis. It is basically an IDL using JSON that is being used by most (if not all) of Google's public APIs. The RPC package makes it simple to create an API giving the same experience as the standard Google APIs.
I can see that there is an overlap with Redstone. There is also an overlap with Shelf, but to a large degree I see the packages as complementary. E.g. we have an example where we use Shelf to listen for requests and then forward the requests to the RPC package for further routing and deserialization at
https://github.com/dart-lang/rpc/blob/master/example/shelf_sample.dart.
Cheers,
/gustav