Meteor
A lightweight Java RPC library that makes distributed applications feel local.
How It Works
Meteor handles the complexity of RPC, allowing you to focus on your business logic rather than distributed systems implementation details.
Simple to Use
// Define your service interface and implementation
public interface UserService {
User findById(String userId);
void updateProfile(String userId, Profile profile);
}
Meteor meteor = new Meteor(new RedisTransport("localhost", 6379, "user-service"));
meteor.registerImplementation(new UserServiceImpl(), "user-service");
// Now, within a completely separate JVM, you can call the service as if it were local
UserService userService = meteor.registerProcedure(
UserService.class,
"user-service"
);
// Then, on an entirely different server, call methods as if they're local
User user = userService.findById("user-123");
Key Features
TSType Safety
Full compile-time type checking with IDE support. No runtime surprises.
FTFlexible Transport
Built-in Redis support with custom transport layer options.
ZBZero Boilerplate
Define an interface, register it, and start using it. No setup complexity.
HPHigh Performance
Minimal overhead with efficient serialization for remote procedure calls.
Get Started
Add Meteor to your Maven project:
<dependency>
<groupId>dev.pixelib.meteor</groupId>
<artifactId>meteor-core</artifactId>
<version>1.0.4</version>
</dependency>
Why We Built It
We built Meteor because we were tired of the complexity in existing Java RPC libraries. Most solutions require extensive configuration and boilerplate code just to make a simple remote method call.
Meteor strips away this complexity. It lets you write distributed applications that feel like they're running locally, with type safety and minimal overhead.