Skip to main content
IDENTITY-FIRST DISTRIBUTED SYSTEMS SUBSTRATE

Aster

RPC after hostnames.

Identity-first connectivity, content-addressed contracts, and cross-language services for real distributed systems.

Built for AI runtimes, edge deployments, and multi-language services that cannot assume static addresses or bolt-on trust.

Code-first

Define services in code. No .proto files. No generation step.

Decorate a class with @service and its methods with @rpc. Aster scans the type signatures, generates a content-addressed contract, and handles serialization across languages. Your Python dataclasses are the schema.

Quickstart
hello_service.py
from dataclasses import dataclass
from aster.decorators import service, rpc

@dataclass
class HelloRequest:
name: str = ""

@dataclass
class HelloResponse:
message: str = ""

@service
class HelloService:
@rpc
async def say_hello(self, req: HelloRequest) -> HelloResponse:
return HelloResponse(message=f"Hello, {req.name}!")
Explore & debug

Browse, inspect, and invoke any service from the shell.

The Aster shell connects to any peer and lets you navigate services like a filesystem. Browse methods, inspect contracts, and invoke RPCs interactively — no local type definitions needed.

Tab completion, streaming output, session subshells, and non-interactive CLI equivalents for scripting.

Shell guide
$ aster shell <endpoint-addr>

producer:/$ cd services/HelloService
producer:/services/HelloService$ ls
Method Pattern Signature
say_hello unary (HelloRequest) -> HelloResponse

producer:/services/HelloService$ ./say_hello name="World"
-> HelloService.say_hello(name='World')
(42ms)
{
"message": "Hello, World!"
}
AI-native

Connect any AI agent to your services in one command.

aster mcp runs an MCP server that exposes your services as tools with full type information. No OpenAPI specs, no REST gateways, no SDK generation — the contract is the tool definition.

Three-layer security model: credential-based filtering, allow/deny patterns, and human-in-the-loop confirmation.

MCP integration guide
# Expose your service to Claude or any MCP-compatible agent
$ aster mcp <endpoint-addr>

# The agent sees typed tools automatically:
# HelloService:say_hello
# - name (string, required)
# - greeting (string, default: "Hello")
#
# FileStore:list (server_stream, returns array)
# FileStore:upload (client_stream, accepts _items array)
Three layers, one system

Transport, serialization, and contract — intentionally separable.

Transport

Identity-first connectivity, NAT-tolerant reachability, real-world networks.

Serialization

High-performance cross-platform payloads, including row-oriented modes for data-heavy workloads.

Contract

Code-first services and content-addressed contract identity.

Get started

Built for the systems that come after cloud-native defaults.

AI runtimes, edge deployments, sovereign meshes, and multi-language services need a different foundation.