Microservice communication protocol.
The base connection is any framed messaging protocol. The current WSTalk2 protocol target is WebSockets since it's ubiquitously available everywhere.
The message frame connection is multiplexed into channels for arbitrary usage. Both sides of the connection can arbitrarily open new channels. When opening a channel, an arbitrary payload blob is included for the application to interpret and process. The payload can be used for authentication, identification, and addressing purposes.
These multiplexed channels are effectively a framed messaging protocol, and technically can be recursively multiplexed into more channels.
An entire channel can be transparantly proxied to another host without parsing it's contents.
The message chain protocol is defined to run on top of any framed messaging protocol. This is similar to an RPC protocol, but rather than being purely request-response, each message can be a response to a previous message, and multiple messages can be sent as a response to form a streamed response. The message chain can recursively respond with streams to individual stream responses, and so on.
An entire message chain starting from any message can be transparantly proxied to another host without parsing it's contents.
Redesign to target both QUIC and WebSockets as primary transport layers.
Add this to your package's pubspec.yaml file:
dependencies: switchboard: ^2.0.9
You can install packages from the command line:
$ pub get
$ flutter packages get
Alternatively, your editor might support
pub get or
flutter packages get.
Check the docs for your editor to learn more.
Now in your Dart code, you can use:
|2.0.9||Dec 4, 2018|
|2.0.8||Dec 4, 2018|
|2.0.7||Dec 4, 2018|
|2.0.5||Nov 25, 2018|
|2.0.4||Nov 25, 2018|
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
We analyzed this package on Dec 5, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:
Detected platforms: Flutter, other
Document public APIs (-9.01 points)
64 out of 71 API elements (library, class, field or method) have no adequate dartdoc content. Good documentation improves code readability and discoverability through search.
lib/src/mux_connection.dart. (-1 points)
lib/src/mux_connection.dart reported 2 hints:
line 32 col 8: Unused import: 'dart:convert'.
line 38 col 8: Unused import: 'package:switchboard/src/mux_channel_impl.dart'.
lib/src/mux_connection_impl.dart. (-0.50 points)
lib/src/mux_connection_impl.dart reported 1 hint:
line 8 col 8: Unused import: 'dart:convert'.
lib/src/switchboard.dart. (-0.50 points)
lib/src/switchboard.dart reported 1 hint:
line 169 col 10: The value of the field '_discoveryService' isn't used.
The description is too short. (-20 points)
Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.
Maintain an example. (-10 points)
Create a short demo in the
example/ directory to show how to use this package. Common file name patterns include:
example.dart or you could also use