A full-stack, ConnectRPC-based microservices framework. The name is the Sun's spectral classification (G2V — main-sequence yellow dwarf), not a backronym.
- Server: Rust crate (
sunbeam-g2v) built onconnectrpc,axum, andtokio. - Client: TypeScript library (
@sunbeam/g2v) for React 19 apps, powered by TanStack Query, legend-state, and OpenTelemetry.
graph TB
subgraph Client
A["React App"] --> B["@sunbeam/g2v"]
B --> C["ConnectRPC Transport"]
end
subgraph Server
C --> D["axum::serve"]
D --> E["Middleware Stack"]
E --> F["ServiceRouter"]
F --> G["SunbeamService"]
G --> H[(Postgres)]
G --> I[NATS]
end
| Feature | Server | Client |
|---|---|---|
| ConnectRPC | ✅ connectrpc |
✅ @connectrpc/connect-web |
| Middleware / Interceptors | ✅ JWT, Keto, metrics, tracing | ✅ auth, retry, circuit, logging |
| Database | ✅ SQLx Postgres | — |
| Messaging | ✅ NATS / JetStream | — |
| Leader Election | ✅ Vault / NATS | — |
| State Management | — | ✅ legend-state |
| Routing | ✅ ServiceRouter |
✅ @tanstack/react-router |
| Observability | ✅ Prometheus + OTel | ✅ Browser OTel SDK |
| Health Checks | ✅ /health/live, /health/ready |
✅ useHealth |
cargo add sunbeam-g2vuse sunbeam_g2v::prelude::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let router = ServiceRouter::new();
ServerBuilder::new()
.with_router(router)
.serve()
.await
}See server/README.md for the full server guide.
deno add @sunbeam/g2vimport { FrameworkProvider } from "@sunbeam/g2v/providers";
import { createTransport } from "@sunbeam/g2v/core";
const transport = createTransport({ baseUrl: "/api" });
export function App() {
return (
<FrameworkProvider transport={transport}>
<YourApp />
</FrameworkProvider>
);
}See client/README.md for the full client guide.
Run the full-stack Eliza demo:
# Terminal 1 — Rust server
cargo run -p sunbeam-g2v --example simple
# Terminal 2 — frontend demo
cd client/examples/simple
npm install
npm run dev
# open http://localhost:5173.
├── server/ # Rust crate — sunbeam-g2v
├── client/ # TypeScript library — @sunbeam/g2v
└── docs/ # Guides and architecture docs
MIT — see LICENSE.md.