# TypeScript to Rust Compiler (TypeScript-Rust-Compiler) - Cursor Rules
## 🎯 ЦЕЛЬ ПРОЕКТА
Создать высокопроизводительный компилятор TypeScript → Rust с полной поддержкой всех возможностей TypeScript, включая:
- Все типы данных и системы типов
- Классы, интерфейсы, дженерики
- Модули и импорты/экспорты
- Декораторы и метаданные
- Асинхронность (async/await)
- JSX/TSX поддержка
- Все продвинутые типы (conditional, mapped, template literals)
## 🚀 ПРИОРИТЕТЫ РАЗРАБОТКИ
1. **СКОРОСТЬ** - компиляция должна быть мгновенной
2. **ПОЛНОТА** - поддержка 100% возможностей TypeScript
3. **ПРОИЗВОДИТЕЛЬНОСТЬ** - генерируемый Rust код должен быть оптимальным
4. **СОВМЕСТИМОСТЬ** - полная обратная совместимость с существующими TS проектами
## 🏗️ АРХИТЕКТУРА
```
ts2rs/
├── src/
│ ├── lexer/ # Лексический анализ
│ ├── parser/ # Синтаксический анализ
│ ├── ast/ # AST структуры
│ ├── semantic/ # Семантический анализ
│ ├── types/ # Система типов
│ ├── generator/ # Генерация Rust кода
│ ├── runtime/ # Runtime для TS семантики
│ └── cli/ # CLI интерфейс
├── tests/ # Тесты
├── examples/ # Примеры
└── docs/ # Документация
```
## 🔧 ТЕХНИЧЕСКИЙ СТЕК
- **Язык**: Rust (latest stable)
- **Парсинг**: nom (parser combinators)
- **Генерация**: quote + syn
- **CLI**: clap
- **Тестирование**: cargo test
- **Документация**: rustdoc
## 📋 ПРАВИЛА РАЗРАБОТКИ
### КОД
- **Стиль**: Следуй rustfmt стандартам
- **Документация**: Каждая публичная функция должна иметь rustdoc
- **Ошибки**: Используй thiserror для структурированных ошибок
- **Производительность**: Профилируй и оптимизируй критические пути
- **Безопасность**: Минимизируй unsafe код
### ТЕСТИРОВАНИЕ
- **Покрытие**: Минимум 90% покрытие тестами
- **Интеграционные тесты**: Для каждого TS фича
- **Бенчмарки**: Для производительности компилятора
- **Регрессионные тесты**: Против реальных TS проектов
### КОММИТЫ
- **Формат**: conventional commits
- **Сообщения**: На английском, краткие и понятные
- **Размер**: Атомарные коммиты, один фича за раз
### ПРОИЗВОДИТЕЛЬНОСТЬ
- **Компиляция**: < 1 секунда для проектов до 10k LOC
- **Память**: < 100MB для больших проектов
- **Генерация**: Оптимальный Rust код без лишних аллокаций
## 🎯 КЛЮЧЕВЫЕ ФИЧИ ДЛЯ ПОДДЕРЖКИ
### БАЗОВЫЕ ТИПЫ
- number → i32/i64/f32/f64
- string → String/&str
- boolean → bool
- null/undefined → Option<T>
- any → Box<dyn Any>
- unknown → Box<dyn Any>
- never → !
- void → ()
### ОБЪЕКТЫ И КЛАССЫ
- interfaces → traits + structs
- classes → structs + impl blocks
- inheritance → trait bounds
- abstract classes → trait definitions
### ДЖЕНЕРИКИ
- <T> → <T>
- extends → trait bounds
- keyof → associated types
- typeof → type inference
### МОДУЛИ
- import/export → use/mod
- namespace → mod
- ambient declarations → extern
### АСИНХРОННОСТЬ
- async/await → async/await
- Promise<T> → Future<Output = T>
- Promise.all → join!/try_join!
### ПРОДВИНУТЫЕ ТИПЫ
- Union types → enums
- Intersection types → trait bounds
- Conditional types → associated types
- Mapped types → generic implementations
- Template literals → const generics
## 🚫 ОГРАНИЧЕНИЯ И ПРЕДУПРЕЖДЕНИЯ
### НЕ ДЕЛАТЬ
- Не упрощай функциональность ради скорости
- Не игнорируй edge cases
- Не ломай семантику TypeScript
- Не генерируй небезопасный Rust код
- Не создавай runtime без необходимости
### ВНИМАНИЕ
- Некоторые TS фичи могут требовать runtime
- GC семантика может потребовать Rc/Arc
- Dynamic typing может потребовать trait objects
- Некоторые оптимизации могут быть невозможны
## 📊 МЕТРИКИ УСПЕХА
- **Скорость компиляции**: < 1s для 10k LOC
- **Покрытие TS фич**: 100%
- **Производительность генерируемого кода**: >= оригинального TS
- **Совместимость**: 100% с существующими проектами
- **Стабильность**: 0 критических багов
## 🔄 ИТЕРАЦИОННЫЙ ПОДХОД
1. **MVP**: Базовые типы + функции (1-2 недели)
2. **Расширение**: Классы + интерфейсы (1-2 недели)
3. **Продвинутые**: Дженерики + модули (1-2 недели)
4. **Финализация**: Оптимизация + тестирование (1 неделя)
## 🎯 ФИНАЛЬНАЯ ЦЕЛЬ
Создать компилятор, который:
- Компилирует любой TypeScript код в Rust
- Генерирует идиоматичный и производительный Rust код
- Сохраняет всю семантику и функциональность TypeScript
- Работает быстрее существующих решений
- Поддерживает все современные TS фичи
**ВРЕМЯ НА РЕАЛИЗАЦИЮ: 4-6 НЕДЕЛЬ**
**СТАНДАРТ КАЧЕСТВА: ПРОДАКШН-РЕДИ**