Skip to main content
OPEN SOURCE / TYPESCRIPTRUNTIME → INTERFACE → OPERATIONS

OMNITRON / ENGINEERING SYSTEMS

Own the
whole system.

One language. Every layer under your control.

Build with Titan. Connect with Netron. Render with Prism. Operate with Omnitron. Start with one service. Add the layers you need.

SYSTEM / 001COMPOSABLE BY DESIGN
INTERFACEPrismReact + netron-react
TRANSPORTNetronHTTP · WS · TCP · Unix
RUNTIMETitanModules · DI · Lifecycle
OmnitronOPTIONAL SUPERVISION
01 Shared TypeScript contracts02 Explicit service boundaries03 Independently composed layers

01 / THE STACK

Four layers. One direction.

From the first method to a running system.

02 / THE CONTRACT

Declare once. Call directly.

Share a type between server and client. No client generation step.

SERVER / signals.service.ts
import { Service, Public } from
'@omnitron-dev/titan/decorators';

@Service('signals@1.0.0')
export class SignalsService {
@Public()
async read(): Promise<{ status: string }> {
return { status: 'online' };
}
}
CLIENT / client.ts
import { createClient } from
'@omnitron-dev/netron-browser';
import type { SignalsService } from './signals.service.js';

const client = createClient({ url: 'http://localhost:3000' });
await client.connect();
const signals = client.service<SignalsService>('signals@1.0.0');
const state = await signals.read();

Service and client excerpts. The quickstart includes module registration, HTTP setup and runnable files. Validate untrusted inputs at the service boundary; TypeScript types are erased at runtime.

03 / FIELD MANUAL

Choose your next move.

Working examples. Explicit limits. Operational detail.

YOUR CODE. YOUR INFRASTRUCTURE.Read the source