# 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