logimesh
logimesh is a Rust microcomponent 2.0 framework inspired by the Towards Modern Development of Cloud Applications paper.
(This is one of my amateur idea and is only developed in leisure-time.)

Some features of logimesh:
- The client supports both local calls and remote calls simultaneously, meaning that users can dynamically switch the calling method according to the context.
Usage
Add to your Cargo.toml dependencies:
= "0.1"
The logimesh::component attribute expands to a collection of items that form an component component.
These generated types make it easy and ergonomic to write servers with less boilerplate.
Simply implement the generated component trait, and you're off to the races!
Example
This example uses tokio, so add the following dependencies to
your Cargo.toml:
= "1.0"
= "0.3"
= { = "0.1" }
= { = "1.0", = ["macros"] }
In the following example, we use an in-process channel for communication between client and server. In real code, you will likely communicate over the network. For a more real-world example, see logimesh-example.
First, let's set up the dependencies and component definition.
# extern crate futures;
use ;
use ;
// This is the component definition. It looks a lot like a trait definition.
// It defines one RPC, hello, which takes one arg, name, and returns a String.
This component definition generates a trait called World. Next we need to
implement it for our Server struct.
# extern crate futures;
# use ;
# use ;
# // This is the component definition. It looks a lot like a trait definition.
# // It defines one RPC, hello, which takes one arg, name, and returns a String.
#
#
/// This is the type that implements the generated World trait. It is the business logic
/// and is used to start the server.
;
Lastly let's write our main that will start the server. While this example uses an
in-process channel, lrcall also ships a generic [serde_transport]
behind the serde-transport feature, with additional TCP functionality
available behind the tcp feature.
# extern crate futures;
# use ;
# use ;
# // This is the component definition. It looks a lot like a trait definition.
# // It defines one RPC, hello, which takes one arg, name, and returns a String.
#
#
# /// This is the type that implements the generated World trait. It is the business logic
# /// and is used to start the server.
#
# ;
#
#
async
async