# RazorConsole — Обзор
**Репозиторий:** https://github.com/RazorConsole/RazorConsole
**Лицензия:** MIT
**Последняя версия:** v0.5.0 (март 2026)
**NuGet:** `RazorConsole.Core`
## Что такое RazorConsole?
RazorConsole — это .NET-библиотека для построения интерактивных TUI-приложений (Terminal User Interface) с использованием синтаксиса Razor-компонентов и движка рендеринга Spectre.Console.
Библиотека заполняет разрыв между веб-разработкой на Blazor/Razor и консольными приложениями: разработчик пишет компоненты `.razor`, а на выходе получает полноценный интерактивный терминальный интерфейс.
## Ключевые возможности
| Возможность | Описание |
|---|---|
| Компонентная архитектура | Razor-компоненты с data binding, event handling и lifecycle |
| 25+ встроенных компонентов | Макет, ввод, отображение, утилиты |
| Интерактивность | Кнопки, текстовые поля, селекторы, навигация клавиатурой |
| Hot Reload | Обновление UI без перезапуска через metadata update handler |
| VDOM + Translators | Виртуальный DOM с расширяемой системой трансляторов |
| DI интеграция | Построен на `Microsoft.Extensions.Hosting` |
| Галерея компонентов | Глобальный инструмент `razorconsole-gallery` |
## Технологический стек
- **Runtime:** .NET 8 / .NET 9
- **SDK:** `Microsoft.NET.Sdk.Razor` (обязателен в `.csproj`)
- **Рендеринг:** Spectre.Console
- **DI/Host:** `Microsoft.Extensions.Hosting`
- **Синтаксис подсветки:** ColorCode
## Установка
```bash
dotnet add package RazorConsole.Core
```
## Минимальный проект
### Файл проекта (`.csproj`)
```xml
```
### Компонент `Counter.razor`
```razor
@using Microsoft.AspNetCore.Components
@using Microsoft.AspNetCore.Components.Web
@using RazorConsole.Components
Current count
@code {
private int currentCount = 0;
private void IncrementCount() { currentCount++; }
}
```
### `Program.cs`
```csharp
using Microsoft.Extensions.Hosting;
using RazorConsole.Core;
IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args)
.UseRazorConsole();
IHost host = hostBuilder.Build();
await host.RunAsync();
```
## Примеры приложений
| Пример | Демонстрирует |
|---|---|
| `examples/Counter/` | Основы: кнопки, состояние, layout, styled text |
| `examples/LLMAgentTUI/` | Интеграция с AI SDK (OpenAI/Ollama), чат-интерфейс |
| `examples/LoginForm/` | Форма с валидацией, маскирование пароля, состояния ошибок |
## Компонентная галерея
```bash
dotnet tool install --global RazorConsole.Gallery --version 0.0.3-alpha
razorconsole-gallery
```
## Структура репозитория
```
src/ — исходный код библиотеки
examples/ — примеры приложений
design-doc/ — архитектурные документы
nuget/ — конфигурация NuGet
release-notes/ — история релизов
docfx/ — генерация документации
website/ — сайт проекта
```
## Сообщество
- Discord: https://discord.gg/DphHAnJxCM
- Issues: https://github.com/RazorConsole/RazorConsole/issues
- Codecov: https://codecov.io/gh/RazorConsole/RazorConsole