rfs-framework


Namerfs-framework JSON
Version 4.4.0 PyPI version JSON
download
home_pageNone
SummaryEnterprise-Grade Reactive Functional Serverless Framework for Python with AsyncResult Web Integration
upload_time2025-08-28 17:38:05
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords async async-result cloud-native enterprise fastapi framework functional logging microservices monad optimization production-ready reactive result-pattern security serverless testing validation web-integration
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # RFS Framework πŸš€

πŸ“– **[Documentation](https://interactord.github.io/rfs-framework/)** | [ν•œκ΅­μ–΄ λ¬Έμ„œ](./docs/)

> **Enterprise-Grade Reactive Functional Serverless Framework for Python**

[![Python 3.10+](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![Version](https://img.shields.io/badge/Version-4.3.0-green.svg)](https://pypi.org/project/rfs-framework/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Cloud Run Ready](https://img.shields.io/badge/Cloud%20Run-Ready-green.svg)](https://cloud.google.com/run)
[![Code Coverage](https://codecov.io/gh/interactord/rfs-framework/branch/main/graph/badge.svg)](https://codecov.io/gh/interactord/rfs-framework)
[![Build Status](https://github.com/interactord/rfs-framework/workflows/CI/badge.svg)](https://github.com/interactord/rfs-framework/actions)
[![Code Quality](https://img.shields.io/codacy/grade/YOUR_PROJECT_ID?label=Code%20Quality)](https://www.codacy.com/gh/interactord/rfs-framework)
[![PyPI Downloads](https://img.shields.io/pypi/dm/rfs-framework.svg)](https://pypi.org/project/rfs-framework/)
[![GitHub Stars](https://img.shields.io/github/stars/interactord/rfs-framework?style=social)](https://github.com/interactord/rfs-framework)
[![GitHub Issues](https://img.shields.io/github/issues/interactord/rfs-framework)](https://github.com/interactord/rfs-framework/issues)

ν˜„λŒ€μ μΈ μ—”ν„°ν”„λΌμ΄μ¦ˆ Python μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μœ„ν•œ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.

## 🎯 Why RFS Framework?

- **νƒ€μž… μ•ˆμ „μ„±**: Result νŒ¨ν„΄μœΌλ‘œ μ˜ˆμ™Έ μ—†λŠ” μ—λŸ¬ 처리
- **λ°˜μ‘ν˜• 슀트림**: Mono/Flux νŒ¨ν„΄μ˜ 비동기 처리
- **ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ**: Google Cloud Run μ΅œμ ν™”
- **ν”„λ‘œλ•μ…˜ μ€€λΉ„**: λͺ¨λ‹ˆν„°λ§, λ³΄μ•ˆ, 배포 μ „λž΅ λ‚΄μž₯

## ⚑ Quick Start

### Installation

```bash
# PyPIμ—μ„œ μ„€μΉ˜ (v4.0.0 - μ•ˆμ • 버전)
pip install rfs-framework

# 선택적 λͺ¨λ“ˆ μ„€μΉ˜
pip install rfs-framework[web]       # FastAPI μ›Ή ν”„λ ˆμž„μ›Œν¬ (μ™„λ£Œ)
pip install rfs-framework[database]  # λ°μ΄ν„°λ² μ΄μŠ€ 지원 (μ™„λ£Œ)
pip install rfs-framework[test]      # ν…ŒμŠ€νŒ… 도ꡬ (μ™„λ£Œ)
pip install rfs-framework[dev]       # 개발 도ꡬ (μ™„λ£Œ)
pip install rfs-framework[docs]      # λ¬Έμ„œν™” 도ꡬ (TBD)
pip install rfs-framework[ai]        # AI/ML 톡합 (TBD)

# λͺ¨λ“  κΈ°λŠ₯ 포함
pip install rfs-framework[all]

# GitHubμ—μ„œ μ΅œμ‹  버전 μ„€μΉ˜ (v4.3.0)
pip install git+https://github.com/interactord/rfs-framework.git
```

μžμ„Έν•œ μ„€μΉ˜ μ˜΅μ…˜μ€ [μ„€μΉ˜ κ°€μ΄λ“œ](./INSTALLATION.md)λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

### Basic Example

```python
from rfs import Result, Success, Failure

def divide(a: int, b: int) -> Result[float, str]:
    if b == 0:
        return Failure("Cannot divide by zero")
    return Success(a / b)

# μ•ˆμ „ν•œ μ—λŸ¬ 처리
result = divide(10, 2)
if result.is_success:
    print(f"Result: {result.unwrap()}")  # Result: 5.0
```

### Reactive Streams

```python
from rfs.reactive import Flux
import asyncio

async def process_data():
    result = await (
        Flux.from_iterable(range(100))
        .parallel(4)  # 4개 μŠ€λ ˆλ“œ 병렬 처리
        .map(lambda x: x * x)
        .filter(lambda x: x % 2 == 0)
        .collect_list()
    )
    return result
```

더 λ§Žμ€ μ˜ˆμ œλŠ” [Examples Directory](./examples/)λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

## πŸ—οΈ Architecture

```
Application Layer
β”œβ”€β”€ CLI & Tools       β†’ 개발자 도ꡬ
β”œβ”€β”€ Web Framework     β†’ FastAPI 톡합
└── Cloud Services    β†’ GCP 톡합

Core Layer
β”œβ”€β”€ Result Pattern    β†’ ν•¨μˆ˜ν˜• μ—λŸ¬ 처리
β”œβ”€β”€ Reactive Streams  β†’ 비동기 슀트림
β”œβ”€β”€ State Machine     β†’ μƒνƒœ 관리
└── Event Sourcing    β†’ CQRS/이벀트 μŠ€ν† μ–΄

Infrastructure Layer
β”œβ”€β”€ Security          β†’ RBAC/ABAC, JWT
β”œβ”€β”€ Monitoring        β†’ λ©”νŠΈλ¦­, λ‘œκΉ…
β”œβ”€β”€ Deployment        β†’ Blue-Green, Canary
└── Optimization      β†’ μ„±λŠ₯ μ΅œμ ν™”
```

## πŸ“š Documentation

### 핡심 λ¬Έμ„œ
- **[핡심 κ°œλ…](./docs/01-core-patterns.md)** - Result νŒ¨ν„΄κ³Ό ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°
- **[API Reference](./docs/API_REFERENCE.md)** - 전체 API λ¬Έμ„œ
- **[μ‚¬μš©μž κ°€μ΄λ“œ](./docs/USER_GUIDE.md)** - 단계별 μ‚¬μš© μ•ˆλ‚΄

### μ£Όμ œλ³„ κ°€μ΄λ“œ
- **[μ„€μ • 관리](./docs/03-configuration.md)** - ν™˜κ²½λ³„ μ„€μ •
- **[λ³΄μ•ˆ](./docs/11-security.md)** - 인증, 인가, λ³΄μ•ˆ κ°•ν™”
- **[배포](./docs/05-deployment.md)** - ν”„λ‘œλ•μ…˜ 배포 μ „λž΅
- **[CLI 도ꡬ](./docs/14-cli-interface.md)** - λͺ…λ Ήν–‰ μΈν„°νŽ˜μ΄μŠ€

### 전체 λ¬Έμ„œ
- **[πŸ“– Docs (ν•œκ΅­μ–΄)](./docs/)** - 17개 λͺ¨λ“ˆ 상세 λ¬Έμ„œ
- **[πŸ“š HOF Library](./docs/22-hot-library.md)** - Higher-Order Functions
- **[λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ°€μ΄λ“œ](./MIGRATION_GUIDE.md)** - v3μ—μ„œ v4둜 μ—…κ·Έλ ˆμ΄λ“œ

## πŸ› οΈ Development

### RFS Framework κ·œμΉ™ μ€€μˆ˜ πŸ”΄

**ν•„μˆ˜**: 개발 μ „ [κ·œμΉ™ λ¬Έμ„œ](./rules/README.md) μˆ™μ§€ ν•„μš”

```bash
# κ·œμΉ™ 검증 (ν•„μˆ˜)
python scripts/validate_rfs_rules.py

# ν•œκΈ€ 주석 및 Result νŒ¨ν„΄ μžλ™ 검증
python scripts/validate_rfs_rules.py --strict

# pre-commit ν›… μ„€μ • (ꢌμž₯)
pip install pre-commit
pre-commit install
```

**핡심 μ€€μˆ˜ 사항**:
- βœ… λͺ¨λ“  주석은 ν•œκΈ€λ‘œ μž‘μ„±
- βœ… μ˜ˆμ™Έ λŒ€μ‹  Result νŒ¨ν„΄ μ‚¬μš©
- βœ… RFS Framework κΈ°λŠ₯ μš°μ„  μ‚¬μš©
- βœ… λΆˆλ³€μ„± μœ μ§€ (frozen dataclass λ“±)

### Commands

```bash
# 개발 μ„œλ²„
rfs-cli dev --reload

# ν…ŒμŠ€νŠΈ
pytest --cov=rfs

# μ½”λ“œ ν’ˆμ§ˆ
black src/ && mypy src/

# μ‹œμŠ€ν…œ μƒνƒœ
rfs status  # 16개 핡심 κΈ°λŠ₯ λͺ¨λ‹ˆν„°λ§
```

### Project Structure

```
rfs-framework/
β”œβ”€β”€ src/rfs/
β”‚   β”œβ”€β”€ core/          # Result νŒ¨ν„΄, DI, μ„€μ •
β”‚   β”œβ”€β”€ reactive/      # Mono/Flux 슀트림
β”‚   β”œβ”€β”€ hof/           # Higher-Order Functions
β”‚   β”œβ”€β”€ production/    # ν”„λ‘œλ•μ…˜ μ‹œμŠ€ν…œ
β”‚   └── cloud_run/     # Cloud Run 톡합
β”œβ”€β”€ tests/             # ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈ
β”œβ”€β”€ docs/              # ν•œκ΅­μ–΄ λ¬Έμ„œ
└── examples/          # 예제 μ½”λ“œ
```

## ✨ Key Features

### 🎯 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°
- Result/Maybe/Either λͺ¨λ‚˜λ“œ
- ν•¨μˆ˜ ν•©μ„±κ³Ό 컀링
- λΆˆλ³€μ„±κ³Ό 순수 ν•¨μˆ˜
- [상세 λ¬Έμ„œ β†’](./docs/01-core-patterns.md)

### ⚑ λ°˜μ‘ν˜• 슀트림
- 비동기 Mono/Flux νŒ¨ν„΄
- λ°±ν”„λ ˆμ…” 지원
- 30+ μ—°μ‚°μž
- [상세 λ¬Έμ„œ β†’](./docs/README.md#reactive-programming)

### πŸ”’ μ—”ν„°ν”„λΌμ΄μ¦ˆ λ³΄μ•ˆ
- RBAC/ABAC μ ‘κ·Ό μ œμ–΄
- JWT 인증
- 취약점 μŠ€μΊλ‹
- [상세 λ¬Έμ„œ β†’](./docs/11-security.md)

### πŸš€ ν”„λ‘œλ•μ…˜ μ€€λΉ„
- Blue-Green/Canary 배포
- Circuit Breaker νŒ¨ν„΄
- μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§
- [상세 λ¬Έμ„œ β†’](./docs/05-deployment.md)

## πŸ“Š Performance

| Metric | Value | Note |
|--------|-------|------|
| **μ‹œμž‘ μ‹œκ°„** | ~50ms | CLI μ΄ˆκΈ°ν™” |
| **λ©”λͺ¨λ¦¬ μ‚¬μš©** | ~25MB | κΈ°λ³Έ μ‹€ν–‰ |
| **응닡 μ‹œκ°„** | <100ms | API 호좜 |
| **μ²˜λ¦¬λŸ‰** | 1200 RPS | 벀치마크 |

## 🚧 Status

- **완성도**: 93% (v4.3.0) - [ν˜„μž¬ 컀버리지 ~10%](https://codecov.io/gh/interactord/rfs-framework)
- **ν”„λ‘œλ•μ…˜ μ€€λΉ„**: βœ… Ready
- **λ―Έμ™„μ„± ν•­λͺ©**: [TODO.md](./TODO.md) μ°Έμ‘°

## 🀝 Contributing

κΈ°μ—¬λ₯Ό ν™˜μ˜ν•©λ‹ˆλ‹€! [Contributing Guide](./CONTRIBUTING.md)λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

```bash
# 개발 ν™˜κ²½ μ„€μ •
git clone https://github.com/interactord/rfs-framework
cd rfs-framework
pip install -e ".[dev]"

# κ·œμΉ™ 검증 및 μ€€μˆ˜ (ν•„μˆ˜)
python scripts/validate_rfs_rules.py

# ν…ŒμŠ€νŠΈ μ‹€ν–‰
pytest

# PR 제좜 μ „ μ΅œμ’… 검증
python scripts/validate_rfs_rules.py --strict
git checkout -b feature/your-feature
git commit -m "feat: μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€"  # ν•œκΈ€ 컀밋 λ©”μ‹œμ§€
git push origin feature/your-feature
```

## πŸ“„ License

MIT License - [LICENSE](./LICENSE) μ°Έμ‘°

## πŸ†˜ Support

- **문제 보고**: [GitHub Issues](https://github.com/interactord/rfs-framework/issues)
- **ν† λ‘ **: [Discussions](https://github.com/interactord/rfs-framework/discussions)
- **λ¬Έμ„œ**: [Wiki](https://github.com/interactord/rfs-framework/wiki)

---

**Made with ❀️ by the RFS Framework Team**
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rfs-framework",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "async, async-result, cloud-native, enterprise, fastapi, framework, functional, logging, microservices, monad, optimization, production-ready, reactive, result-pattern, security, serverless, testing, validation, web-integration",
    "author": null,
    "author_email": "RFS Framework Team <team@rfs-framework.dev>",
    "download_url": "https://files.pythonhosted.org/packages/57/ff/1883801c45d169f36e411e713a6b1bedf800e7f9623fc02581d9cff5b157/rfs_framework-4.4.0.tar.gz",
    "platform": null,
    "description": "# RFS Framework \ud83d\ude80\n\n\ud83d\udcd6 **[Documentation](https://interactord.github.io/rfs-framework/)** | [\ud55c\uad6d\uc5b4 \ubb38\uc11c](./docs/)\n\n> **Enterprise-Grade Reactive Functional Serverless Framework for Python**\n\n[![Python 3.10+](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![Version](https://img.shields.io/badge/Version-4.3.0-green.svg)](https://pypi.org/project/rfs-framework/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Cloud Run Ready](https://img.shields.io/badge/Cloud%20Run-Ready-green.svg)](https://cloud.google.com/run)\n[![Code Coverage](https://codecov.io/gh/interactord/rfs-framework/branch/main/graph/badge.svg)](https://codecov.io/gh/interactord/rfs-framework)\n[![Build Status](https://github.com/interactord/rfs-framework/workflows/CI/badge.svg)](https://github.com/interactord/rfs-framework/actions)\n[![Code Quality](https://img.shields.io/codacy/grade/YOUR_PROJECT_ID?label=Code%20Quality)](https://www.codacy.com/gh/interactord/rfs-framework)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/rfs-framework.svg)](https://pypi.org/project/rfs-framework/)\n[![GitHub Stars](https://img.shields.io/github/stars/interactord/rfs-framework?style=social)](https://github.com/interactord/rfs-framework)\n[![GitHub Issues](https://img.shields.io/github/issues/interactord/rfs-framework)](https://github.com/interactord/rfs-framework/issues)\n\n\ud604\ub300\uc801\uc778 \uc5d4\ud130\ud504\ub77c\uc774\uc988 Python \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc704\ud55c \ud568\uc218\ud615 \ud504\ub85c\uadf8\ub798\ubc0d \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4.\n\n## \ud83c\udfaf Why RFS Framework?\n\n- **\ud0c0\uc785 \uc548\uc804\uc131**: Result \ud328\ud134\uc73c\ub85c \uc608\uc678 \uc5c6\ub294 \uc5d0\ub7ec \ucc98\ub9ac\n- **\ubc18\uc751\ud615 \uc2a4\ud2b8\ub9bc**: Mono/Flux \ud328\ud134\uc758 \ube44\ub3d9\uae30 \ucc98\ub9ac\n- **\ud074\ub77c\uc6b0\ub4dc \ub124\uc774\ud2f0\ube0c**: Google Cloud Run \ucd5c\uc801\ud654\n- **\ud504\ub85c\ub355\uc158 \uc900\ube44**: \ubaa8\ub2c8\ud130\ub9c1, \ubcf4\uc548, \ubc30\ud3ec \uc804\ub7b5 \ub0b4\uc7a5\n\n## \u26a1 Quick Start\n\n### Installation\n\n```bash\n# PyPI\uc5d0\uc11c \uc124\uce58 (v4.0.0 - \uc548\uc815 \ubc84\uc804)\npip install rfs-framework\n\n# \uc120\ud0dd\uc801 \ubaa8\ub4c8 \uc124\uce58\npip install rfs-framework[web]       # FastAPI \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c (\uc644\ub8cc)\npip install rfs-framework[database]  # \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc9c0\uc6d0 (\uc644\ub8cc)\npip install rfs-framework[test]      # \ud14c\uc2a4\ud305 \ub3c4\uad6c (\uc644\ub8cc)\npip install rfs-framework[dev]       # \uac1c\ubc1c \ub3c4\uad6c (\uc644\ub8cc)\npip install rfs-framework[docs]      # \ubb38\uc11c\ud654 \ub3c4\uad6c (TBD)\npip install rfs-framework[ai]        # AI/ML \ud1b5\ud569 (TBD)\n\n# \ubaa8\ub4e0 \uae30\ub2a5 \ud3ec\ud568\npip install rfs-framework[all]\n\n# GitHub\uc5d0\uc11c \ucd5c\uc2e0 \ubc84\uc804 \uc124\uce58 (v4.3.0)\npip install git+https://github.com/interactord/rfs-framework.git\n```\n\n\uc790\uc138\ud55c \uc124\uce58 \uc635\uc158\uc740 [\uc124\uce58 \uac00\uc774\ub4dc](./INSTALLATION.md)\ub97c \ucc38\uc870\ud558\uc138\uc694.\n\n### Basic Example\n\n```python\nfrom rfs import Result, Success, Failure\n\ndef divide(a: int, b: int) -> Result[float, str]:\n    if b == 0:\n        return Failure(\"Cannot divide by zero\")\n    return Success(a / b)\n\n# \uc548\uc804\ud55c \uc5d0\ub7ec \ucc98\ub9ac\nresult = divide(10, 2)\nif result.is_success:\n    print(f\"Result: {result.unwrap()}\")  # Result: 5.0\n```\n\n### Reactive Streams\n\n```python\nfrom rfs.reactive import Flux\nimport asyncio\n\nasync def process_data():\n    result = await (\n        Flux.from_iterable(range(100))\n        .parallel(4)  # 4\uac1c \uc2a4\ub808\ub4dc \ubcd1\ub82c \ucc98\ub9ac\n        .map(lambda x: x * x)\n        .filter(lambda x: x % 2 == 0)\n        .collect_list()\n    )\n    return result\n```\n\n\ub354 \ub9ce\uc740 \uc608\uc81c\ub294 [Examples Directory](./examples/)\ub97c \ucc38\uc870\ud558\uc138\uc694.\n\n## \ud83c\udfd7\ufe0f Architecture\n\n```\nApplication Layer\n\u251c\u2500\u2500 CLI & Tools       \u2192 \uac1c\ubc1c\uc790 \ub3c4\uad6c\n\u251c\u2500\u2500 Web Framework     \u2192 FastAPI \ud1b5\ud569\n\u2514\u2500\u2500 Cloud Services    \u2192 GCP \ud1b5\ud569\n\nCore Layer\n\u251c\u2500\u2500 Result Pattern    \u2192 \ud568\uc218\ud615 \uc5d0\ub7ec \ucc98\ub9ac\n\u251c\u2500\u2500 Reactive Streams  \u2192 \ube44\ub3d9\uae30 \uc2a4\ud2b8\ub9bc\n\u251c\u2500\u2500 State Machine     \u2192 \uc0c1\ud0dc \uad00\ub9ac\n\u2514\u2500\u2500 Event Sourcing    \u2192 CQRS/\uc774\ubca4\ud2b8 \uc2a4\ud1a0\uc5b4\n\nInfrastructure Layer\n\u251c\u2500\u2500 Security          \u2192 RBAC/ABAC, JWT\n\u251c\u2500\u2500 Monitoring        \u2192 \uba54\ud2b8\ub9ad, \ub85c\uae45\n\u251c\u2500\u2500 Deployment        \u2192 Blue-Green, Canary\n\u2514\u2500\u2500 Optimization      \u2192 \uc131\ub2a5 \ucd5c\uc801\ud654\n```\n\n## \ud83d\udcda Documentation\n\n### \ud575\uc2ec \ubb38\uc11c\n- **[\ud575\uc2ec \uac1c\ub150](./docs/01-core-patterns.md)** - Result \ud328\ud134\uacfc \ud568\uc218\ud615 \ud504\ub85c\uadf8\ub798\ubc0d\n- **[API Reference](./docs/API_REFERENCE.md)** - \uc804\uccb4 API \ubb38\uc11c\n- **[\uc0ac\uc6a9\uc790 \uac00\uc774\ub4dc](./docs/USER_GUIDE.md)** - \ub2e8\uacc4\ubcc4 \uc0ac\uc6a9 \uc548\ub0b4\n\n### \uc8fc\uc81c\ubcc4 \uac00\uc774\ub4dc\n- **[\uc124\uc815 \uad00\ub9ac](./docs/03-configuration.md)** - \ud658\uacbd\ubcc4 \uc124\uc815\n- **[\ubcf4\uc548](./docs/11-security.md)** - \uc778\uc99d, \uc778\uac00, \ubcf4\uc548 \uac15\ud654\n- **[\ubc30\ud3ec](./docs/05-deployment.md)** - \ud504\ub85c\ub355\uc158 \ubc30\ud3ec \uc804\ub7b5\n- **[CLI \ub3c4\uad6c](./docs/14-cli-interface.md)** - \uba85\ub839\ud589 \uc778\ud130\ud398\uc774\uc2a4\n\n### \uc804\uccb4 \ubb38\uc11c\n- **[\ud83d\udcd6 Docs (\ud55c\uad6d\uc5b4)](./docs/)** - 17\uac1c \ubaa8\ub4c8 \uc0c1\uc138 \ubb38\uc11c\n- **[\ud83d\udcda HOF Library](./docs/22-hot-library.md)** - Higher-Order Functions\n- **[\ub9c8\uc774\uadf8\ub808\uc774\uc158 \uac00\uc774\ub4dc](./MIGRATION_GUIDE.md)** - v3\uc5d0\uc11c v4\ub85c \uc5c5\uadf8\ub808\uc774\ub4dc\n\n## \ud83d\udee0\ufe0f Development\n\n### RFS Framework \uaddc\uce59 \uc900\uc218 \ud83d\udd34\n\n**\ud544\uc218**: \uac1c\ubc1c \uc804 [\uaddc\uce59 \ubb38\uc11c](./rules/README.md) \uc219\uc9c0 \ud544\uc694\n\n```bash\n# \uaddc\uce59 \uac80\uc99d (\ud544\uc218)\npython scripts/validate_rfs_rules.py\n\n# \ud55c\uae00 \uc8fc\uc11d \ubc0f Result \ud328\ud134 \uc790\ub3d9 \uac80\uc99d\npython scripts/validate_rfs_rules.py --strict\n\n# pre-commit \ud6c5 \uc124\uc815 (\uad8c\uc7a5)\npip install pre-commit\npre-commit install\n```\n\n**\ud575\uc2ec \uc900\uc218 \uc0ac\ud56d**:\n- \u2705 \ubaa8\ub4e0 \uc8fc\uc11d\uc740 \ud55c\uae00\ub85c \uc791\uc131\n- \u2705 \uc608\uc678 \ub300\uc2e0 Result \ud328\ud134 \uc0ac\uc6a9\n- \u2705 RFS Framework \uae30\ub2a5 \uc6b0\uc120 \uc0ac\uc6a9\n- \u2705 \ubd88\ubcc0\uc131 \uc720\uc9c0 (frozen dataclass \ub4f1)\n\n### Commands\n\n```bash\n# \uac1c\ubc1c \uc11c\ubc84\nrfs-cli dev --reload\n\n# \ud14c\uc2a4\ud2b8\npytest --cov=rfs\n\n# \ucf54\ub4dc \ud488\uc9c8\nblack src/ && mypy src/\n\n# \uc2dc\uc2a4\ud15c \uc0c1\ud0dc\nrfs status  # 16\uac1c \ud575\uc2ec \uae30\ub2a5 \ubaa8\ub2c8\ud130\ub9c1\n```\n\n### Project Structure\n\n```\nrfs-framework/\n\u251c\u2500\u2500 src/rfs/\n\u2502   \u251c\u2500\u2500 core/          # Result \ud328\ud134, DI, \uc124\uc815\n\u2502   \u251c\u2500\u2500 reactive/      # Mono/Flux \uc2a4\ud2b8\ub9bc\n\u2502   \u251c\u2500\u2500 hof/           # Higher-Order Functions\n\u2502   \u251c\u2500\u2500 production/    # \ud504\ub85c\ub355\uc158 \uc2dc\uc2a4\ud15c\n\u2502   \u2514\u2500\u2500 cloud_run/     # Cloud Run \ud1b5\ud569\n\u251c\u2500\u2500 tests/             # \ud14c\uc2a4\ud2b8 \uc2a4\uc704\ud2b8\n\u251c\u2500\u2500 docs/              # \ud55c\uad6d\uc5b4 \ubb38\uc11c\n\u2514\u2500\u2500 examples/          # \uc608\uc81c \ucf54\ub4dc\n```\n\n## \u2728 Key Features\n\n### \ud83c\udfaf \ud568\uc218\ud615 \ud504\ub85c\uadf8\ub798\ubc0d\n- Result/Maybe/Either \ubaa8\ub098\ub4dc\n- \ud568\uc218 \ud569\uc131\uacfc \ucee4\ub9c1\n- \ubd88\ubcc0\uc131\uacfc \uc21c\uc218 \ud568\uc218\n- [\uc0c1\uc138 \ubb38\uc11c \u2192](./docs/01-core-patterns.md)\n\n### \u26a1 \ubc18\uc751\ud615 \uc2a4\ud2b8\ub9bc\n- \ube44\ub3d9\uae30 Mono/Flux \ud328\ud134\n- \ubc31\ud504\ub808\uc154 \uc9c0\uc6d0\n- 30+ \uc5f0\uc0b0\uc790\n- [\uc0c1\uc138 \ubb38\uc11c \u2192](./docs/README.md#reactive-programming)\n\n### \ud83d\udd12 \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ubcf4\uc548\n- RBAC/ABAC \uc811\uadfc \uc81c\uc5b4\n- JWT \uc778\uc99d\n- \ucde8\uc57d\uc810 \uc2a4\uce90\ub2dd\n- [\uc0c1\uc138 \ubb38\uc11c \u2192](./docs/11-security.md)\n\n### \ud83d\ude80 \ud504\ub85c\ub355\uc158 \uc900\ube44\n- Blue-Green/Canary \ubc30\ud3ec\n- Circuit Breaker \ud328\ud134\n- \uc131\ub2a5 \ubaa8\ub2c8\ud130\ub9c1\n- [\uc0c1\uc138 \ubb38\uc11c \u2192](./docs/05-deployment.md)\n\n## \ud83d\udcca Performance\n\n| Metric | Value | Note |\n|--------|-------|------|\n| **\uc2dc\uc791 \uc2dc\uac04** | ~50ms | CLI \ucd08\uae30\ud654 |\n| **\uba54\ubaa8\ub9ac \uc0ac\uc6a9** | ~25MB | \uae30\ubcf8 \uc2e4\ud589 |\n| **\uc751\ub2f5 \uc2dc\uac04** | <100ms | API \ud638\ucd9c |\n| **\ucc98\ub9ac\ub7c9** | 1200 RPS | \ubca4\uce58\ub9c8\ud06c |\n\n## \ud83d\udea7 Status\n\n- **\uc644\uc131\ub3c4**: 93% (v4.3.0) - [\ud604\uc7ac \ucee4\ubc84\ub9ac\uc9c0 ~10%](https://codecov.io/gh/interactord/rfs-framework)\n- **\ud504\ub85c\ub355\uc158 \uc900\ube44**: \u2705 Ready\n- **\ubbf8\uc644\uc131 \ud56d\ubaa9**: [TODO.md](./TODO.md) \ucc38\uc870\n\n## \ud83e\udd1d Contributing\n\n\uae30\uc5ec\ub97c \ud658\uc601\ud569\ub2c8\ub2e4! [Contributing Guide](./CONTRIBUTING.md)\ub97c \ucc38\uc870\ud558\uc138\uc694.\n\n```bash\n# \uac1c\ubc1c \ud658\uacbd \uc124\uc815\ngit clone https://github.com/interactord/rfs-framework\ncd rfs-framework\npip install -e \".[dev]\"\n\n# \uaddc\uce59 \uac80\uc99d \ubc0f \uc900\uc218 (\ud544\uc218)\npython scripts/validate_rfs_rules.py\n\n# \ud14c\uc2a4\ud2b8 \uc2e4\ud589\npytest\n\n# PR \uc81c\ucd9c \uc804 \ucd5c\uc885 \uac80\uc99d\npython scripts/validate_rfs_rules.py --strict\ngit checkout -b feature/your-feature\ngit commit -m \"feat: \uc0c8\ub85c\uc6b4 \uae30\ub2a5 \ucd94\uac00\"  # \ud55c\uae00 \ucee4\ubc0b \uba54\uc2dc\uc9c0\ngit push origin feature/your-feature\n```\n\n## \ud83d\udcc4 License\n\nMIT License - [LICENSE](./LICENSE) \ucc38\uc870\n\n## \ud83c\udd98 Support\n\n- **\ubb38\uc81c \ubcf4\uace0**: [GitHub Issues](https://github.com/interactord/rfs-framework/issues)\n- **\ud1a0\ub860**: [Discussions](https://github.com/interactord/rfs-framework/discussions)\n- **\ubb38\uc11c**: [Wiki](https://github.com/interactord/rfs-framework/wiki)\n\n---\n\n**Made with \u2764\ufe0f by the RFS Framework Team**",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Enterprise-Grade Reactive Functional Serverless Framework for Python with AsyncResult Web Integration",
    "version": "4.4.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/interactord/rfs-framework/issues",
        "Changelog": "https://github.com/interactord/rfs-framework/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/interactord/rfs-framework#documentation",
        "Homepage": "https://github.com/interactord/rfs-framework",
        "Repository": "https://github.com/interactord/rfs-framework"
    },
    "split_keywords": [
        "async",
        " async-result",
        " cloud-native",
        " enterprise",
        " fastapi",
        " framework",
        " functional",
        " logging",
        " microservices",
        " monad",
        " optimization",
        " production-ready",
        " reactive",
        " result-pattern",
        " security",
        " serverless",
        " testing",
        " validation",
        " web-integration"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "05133c9c90c33556a7de742cff1844455546bbeb82506c1ebef0471f6bb510e6",
                "md5": "abd4e3bcf030b94ff9c2f34922d053c1",
                "sha256": "49c87fcba3a8faa4595e63371890f7a57123a5deff5f2e44feef5c124dea9ff2"
            },
            "downloads": -1,
            "filename": "rfs_framework-4.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "abd4e3bcf030b94ff9c2f34922d053c1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 786259,
            "upload_time": "2025-08-28T17:38:03",
            "upload_time_iso_8601": "2025-08-28T17:38:03.058133Z",
            "url": "https://files.pythonhosted.org/packages/05/13/3c9c90c33556a7de742cff1844455546bbeb82506c1ebef0471f6bb510e6/rfs_framework-4.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "57ff1883801c45d169f36e411e713a6b1bedf800e7f9623fc02581d9cff5b157",
                "md5": "30cea82aa4003aeeef0d5cf3b50d2698",
                "sha256": "7b9e60b9595304c83953d604433b562294533ffbab0815e508c3586c52577849"
            },
            "downloads": -1,
            "filename": "rfs_framework-4.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "30cea82aa4003aeeef0d5cf3b50d2698",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 1058154,
            "upload_time": "2025-08-28T17:38:05",
            "upload_time_iso_8601": "2025-08-28T17:38:05.328462Z",
            "url": "https://files.pythonhosted.org/packages/57/ff/1883801c45d169f36e411e713a6b1bedf800e7f9623fc02581d9cff5b157/rfs_framework-4.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-28 17:38:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "interactord",
    "github_project": "rfs-framework",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "rfs-framework"
}
        
Elapsed time: 0.85475s