open-index/open-npm huggingface dataset:
npm package: @flatcokecom/idl
Description: Protocol Buffers IDL for microservices
Latest version: 1.0.13

# Proto IDL

마이크로서비스용 Protocol Buffers 정의 및 Go/TypeScript 코드 생성

## Structure

```
proto-idl/
├── proto/          # Proto 정의
│   ├── user/v1/
│   └── post/v1/
└── gen/            # 생성된 코드
    ├── go/
    └── ts/
```

## Prerequisites

- buf >= 1.28
- Go >= 1.21
- Node.js >= 18

### 필수 설치

```bash
# buf CLI
brew install buf

# Go protoc plugins
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest
```

## Usage

```bash
make generate  # 코드 생성
make lint      # Lint
```

## Generated Code

**Go:**
```go
import (
    userv1 "github.com/flatcoke/proto-idl/gen/go/user/v1"
    postv1 "github.com/flatcoke/proto-idl/gen/go/post/v1"
)
```

**TypeScript:**
```typescript
import { UserServiceClient } from './gen/ts/user/v1/user';
import { PostServiceClient } from './gen/ts/post/v1/post';
```

## URL Convention

| Prefix | 설명 | 예시 |
|--------|------|------|
| `/v1/...` | 내부 서비스 간 통신용 | `/v1/users/{id}` |
| `/external/v1/...` | 외부 클라이언트 노출용 | `/external/v1/auth/login` |

## Adding New Service

1. `proto/[service]/v1/[service].proto` 생성
2. `buf.yaml`에 경로 추가 (필요시)
3. `make generate` 실행