Service Weaver -- Write your application as a modular binary. Deploy it as a set of microservices

An interesting project:

A few blog articles about it:

Perhaps the most interesting thing about this is that it uses a custom serialization and RPC protocol:

No RPCs, No Protos, An Efficient Network Protocol

The fact that all application components run at the same code version allows Service Weaver to heavily optimize its serialization and communication protocols. For example, co-located components communicate via direct method calls; components that aren’t co-located communicate using language native data-structures and a custom RPC protocol. Both the serialization and the RPC protocols are more efficient than gRPC and Protocol Buffers because they avoid the overhead needed to resolve versioning issues.

The source code:

Licensed under the Apache-2.0 license.

Requires a Google CLA to contribute.