API reference (overview)
Main public types and where to import them from. For full signatures, see the source or your IDE.
Core (urich / urich.core)
| Symbol |
Description |
Application |
Main app; register(module), add_route(), openapi(), container, starlette. |
Container |
DI: register(), register_instance(), register_class(), resolve(). |
Module |
Protocol: register_into(app). |
HttpModule |
Plain HTTP routes under a prefix; .route(path, endpoint, methods). |
Config |
Base config; load_from_env(prefix, **defaults) returns a dict. |
Domain (urich.domain)
| Symbol |
Description |
Entity |
Base for entities; equality by id. |
ValueObject |
Frozen dataclass base; equality by fields. |
AggregateRoot |
Entity + raise_event(), collect_pending_events(). |
DomainEvent |
Base for domain events (dataclass subclasses). |
Repository[T] |
Abstract: get(id), add(aggregate), save(aggregate). |
EventBus |
Protocol: publish(event), subscribe(event_type, handler). |
InProcessEventDispatcher |
Default in-process EventBus implementation. |
DDD (urich.ddd)
| Symbol |
Description |
DomainModule |
Bounded context: .aggregate(), .repository(), .command(), .query(), .on_event(). |
Command |
Base dataclass for commands. |
Query |
Base dataclass for queries. |
Events (urich.events)
| Symbol |
Description |
EventBusModule |
.in_memory() or .adapter(impl); registers EventBus. |
EventBusAdapter |
Protocol: publish, subscribe. |
OutboxModule |
.storage(impl), .publisher(impl). |
OutboxStorage |
Protocol: append(events, *, connection). |
OutboxPublisher |
Protocol: fetch_pending(), mark_published(ids). |
Discovery (urich.discovery)
| Symbol |
Description |
DiscoveryModule |
.static(services) or .adapter(impl); registers ServiceDiscovery. |
ServiceDiscovery |
Protocol: resolve(service_name) -> list[str]. |
static_discovery(services) |
Returns StaticDiscovery (name → URL map). |
RPC (urich.rpc)
| Symbol |
Description |
RpcModule |
.server(path, handler), .client(discovery, transport). |
RpcTransport |
Protocol: call(url, method, payload) -> bytes. |
RpcServerHandler |
Protocol: handle(method, payload) -> bytes. |
JsonHttpRpcTransport |
Built-in HTTP+JSON transport (requires httpx). |
OpenAPI (urich.core.openapi)
| Symbol |
Description |
schema_from_dataclass(cls) |
JSON Schema dict for a dataclass. |
parameters_from_dataclass(cls) |
OpenAPI query parameters list for a dataclass. |
build_openapi_spec(routes, ...) |
Build full OpenAPI 3.0 spec dict. |
CLI
Entry point: urich (after pip install "urich[cli]"). Commands: create-app, add-context, add-aggregate. See CLI.