An open API service indexing awesome lists of open source software.

https://github.com/qtaghdi/boundra

(🚧 Under Development) Enforced boundaries for domain-first TypeScript applications.
https://github.com/qtaghdi/boundra

framework javascript rust typescript

Last synced: 1 day ago
JSON representation

(🚧 Under Development) Enforced boundaries for domain-first TypeScript applications.

Awesome Lists containing this project

README

          

# Boundra

도메인 쀑심 ν’€μŠ€νƒ κ°œλ°œμ„ κ°•μ œν•˜λŠ” TypeScript ν”„λ ˆμž„μ›Œν¬ (Rust 기반 툴링 μ—”μ§„)

## Why Boundra

BoundraλŠ” "λͺ¨λ“  κ±Έ λŒ€μ²΄ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬"κ°€ μ•„λ‹™λ‹ˆλ‹€. ꡬ쑰와 경계λ₯Ό κ°•μ œν•΄μ„œ, νŒ€ 규λͺ¨κ°€ 컀져도 μ½”λ“œλ² μ΄μŠ€ 일관성을 μœ μ§€ν•˜λ„λ‘ λ•λŠ” ν”Œλž«νΌμž…λ‹ˆλ‹€.

ν•΄κ²°ν•˜λ €λŠ” 핡심 문제:
- 도메인 λ‹¨μœ„ 뢄리가 λ˜μ§€ μ•Šμ•„ λ³€κ²½ 영ν–₯ λ²”μœ„κ°€ 뢈λͺ…ν™•ν•œ 문제
- λͺ¨λ…Έλ ˆν¬μ—μ„œ import μžμœ λ„λ‘œ 경계가 λΆ•κ΄΄λ˜λŠ” 문제
- ν’€μŠ€νƒ κ°œλ°œμ—μ„œ ꡬ쑰 일관성이 λΉ λ₯΄κ²Œ κΉ¨μ§€λŠ” 문제

핡심 κ°€μΉ˜:
- ꡬ쑰 κ°•μ œλ₯Ό ν†΅ν•œ μœ μ§€λ³΄μˆ˜ λΉ„μš© 절감
- AIκ°€ μ΄ν•΄ν•˜κ³  μž‘μ—…ν•˜κΈ° μ‰¬μš΄ μ½”λ“œλ² μ΄μŠ€
- μ„œλ²„/ν΄λΌμ΄μ–ΈνŠΈ/νƒ€μž…/μ •μ±… 일관성
- λͺ¨λ…Έλ ˆν¬ ν™•μž₯μ„±

## Non-Goals

μ΄ˆκΈ°μ—λŠ” μ•„λž˜ μ˜μ—­μ„ 직접 λ§Œλ“€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
- JS λŸ°νƒ€μž„
- λ²ˆλ“€λŸ¬
- UI ν”„λ ˆμž„μ›Œν¬
- ORM
- μƒνƒœκ΄€λ¦¬
- ν…ŒμŠ€νŠΈ λŸ¬λ„ˆ
- Next.js λŒ€μ²΄

## Design Principles

1. 앱보닀 도메인이 λ¨Όμ €λ‹€
2. sharedλŠ” μ΅œμ†Œν™”ν•œλ‹€
3. κ²½κ³„λŠ” κ·œμΉ™μ΄ μ•„λ‹ˆλΌ λ„κ΅¬λ‘œ κ°•μ œν•œλ‹€
4. νƒ€μž… κ³΅μœ λ³΄λ‹€ 계약(shared contract)을 μš°μ„ ν•œλ‹€
5. μžμœ λ³΄λ‹€ μ•ˆμ „ν•œ μ œμ•½μ„ μ œκ³΅ν•œλ‹€
6. AIκ°€ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ ꡬ쑰λ₯Ό λ§Œλ“ λ‹€
7. MCPλŠ” μ½”μ–΄κ°€ μ•„λ‹ˆλΌ ν™•μž₯ λ ˆμ΄μ–΄λ‹€

## Target Structure

```txt
apps/
web/
admin/

domains/
/
client/
server/
shared/
mcp/
tests/

packages/
runtime/
ui/
infra/
config/
tooling/

crates/
core/
parser/
rules/
cli/
```

## V1 Scope

λ°˜λ“œμ‹œ 포함:
- `create-domain`
- `check-boundaries`
- `graph-domains`
- schema 기반 계약
- route/query/mutation μ½”λ“œ 생성

## Documentation Map

- ν”„λ‘œμ νŠΈ ν—Œμž₯: [docs/project-charter.md](docs/project-charter.md)
- μ•„ν‚€ν…μ²˜: [docs/architecture.md](docs/architecture.md)
- 경계 κ·œμΉ™: [docs/boundary-rules.md](docs/boundary-rules.md)
- CLI λͺ…μ„Έ(v1): [docs/cli-spec-v1.md](docs/cli-spec-v1.md)
- μ„€μ • λͺ…μ„Έ: [docs/config-spec.md](docs/config-spec.md)
- ν”„λ ˆμž„μ›Œν¬ ν‘œλ©΄: [docs/framework-surface.md](docs/framework-surface.md)
- CI 연동: [docs/ci-integration.md](docs/ci-integration.md)
- 넀이밍 κ·œμ•½: [docs/naming-convention.md](docs/naming-convention.md)
- 도메인 λ§€λ‹ˆνŽ˜μŠ€νŠΈ λͺ…μ„Έ: [docs/domain-manifest-spec.md](docs/domain-manifest-spec.md)
- λ‘œλ“œλ§΅: [docs/roadmap.md](docs/roadmap.md)
- 1인 개발 μ»¨λ²€μ…˜: [docs/solo-convention.md](docs/solo-convention.md)
- μš©μ–΄ 사전: [docs/glossary.md](docs/glossary.md)
- ADR: [docs/adr](docs/adr)
- κΈ°μ—¬ κ°€μ΄λ“œ: [CONTRIBUTING.md](CONTRIBUTING.md)

## Current Status

- Repository bootstrap is complete.
- Core documentation and conventions are drafted.
- Rust workspace and `check-boundaries` MVP are available for BR-001 through BR-004.
- `create-domain`, `graph-domains`, and initial `generate` workflows are available.
- `packages/runtime` provides the first TypeScript helper surface for generated contracts.
- Generated route/query/mutation contracts are registered in `domain.json` `publicApi.shared`.
- CLI fixture tests cover text/json output, boundary behavior, scaffolding, graph output, code generation, and manifest updates.

## Quick Start (MVP)

사전 μš”κ΅¬μ‚¬ν•­:
- Rust toolchain (`cargo`, `rustc`)

μ‹€ν–‰:

```bash
cargo run -p boundra-cli -- create-domain order
cargo run -p boundra-cli -- check-boundaries
cargo run -p boundra-cli -- graph-domains --format mermaid
cargo run -p boundra-cli -- generate route order/create-order
```

Run against an explicit project root:

```bash
cargo run -p boundra-cli -- check-boundaries --root .
```

JSON 좜λ ₯:

```bash
cargo run -p boundra-cli -- check-boundaries --format json
```

CI μ‹€ν–‰:

```bash
cargo run -p boundra-cli -- check-boundaries --root . --format json
```