shared-libs/README.md
Rama master · réplica de lectura del repositorio original.
# Shared Libraries
Cross-product shared code for the Start9 monorepo. Everything here is consumed by
the thin product crates/apps at `projects/` (`projects/start-os/`,
`projects/start-cli/`, `projects/start-registry/`, `projects/start-tunnel/`,
`projects/start-wrt/`,
`projects/start-sdk/`, `projects/brochure-marketplace/`); little ships from
here on its own.
## Layout
- **`crates/start-core/`** — the entire Rust backend, packaged as the `start-core`
crate (lib name `start_core`). Every product binary (`startbox`/`start-container`,
`start-cli`, `registrybox`, `tunnelbox`, `startwrt`) depends on it. See
[`crates/start-core/README.md`](crates/start-core/README.md).
- **`crates/visit-rs/`** and **`crates/visit-rs-derive/`** — generic value/type
reflection and opaque metadata, shared by backend consumers.
- **`crates/rpc-toolkit/`** — RPC handlers and the optional `ts` consumer, owning
serde normalization, TypeScript rendering and typed export roots.
- **`ts-modules/`** — shared TypeScript modules; two Angular source libraries in the single Angular workspace rooted at the repo
root (`angular.json`, `package.json`, `package-lock.json`):
- `ts-modules/shared/` → `@start9labs/shared` (API clients, components, i18n, styles)
- `ts-modules/marketplace/` → `@start9labs/marketplace` (service discovery UI)
- `ts-modules/start-core/` → `@start9labs/start-core` (non-Angular types/ABI/effects/OS bindings, built separately and bundled into the SDK)
The product apps (`projects/start-os/web/ui`, `projects/start-os/web/setup-wizard`,
`projects/start-tunnel/web`, `projects/start-wrt/web`, `projects/brochure-marketplace/src`) all live in their
product dirs but build through this workspace and import these libraries. See
[`ts-modules/README.md`](ts-modules/README.md).
## Quickstart
Rust backend:
```bash
# from the repo root
cargo build -p start-core # build the shared lib
make start-core-test # scoped backend tests
```
Web:
```bash
# from the repo root
npm ci
npm run build:deps # build @start9labs/start-core + patch-db client
npm run check # typecheck all projects
```
## Documentation
- [ARCHITECTURE.md](ARCHITECTURE.md) — how the two sub-libs fit into the monorepo
- [AGENTS.md](AGENTS.md) — build/test/format workflow