QuoteFeed.Client 0.1.7

dotnet add package QuoteFeed.Client --version 0.1.7
                    
NuGet\Install-Package QuoteFeed.Client -Version 0.1.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="QuoteFeed.Client" Version="0.1.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="QuoteFeed.Client" Version="0.1.7" />
                    
Directory.Packages.props
<PackageReference Include="QuoteFeed.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add QuoteFeed.Client --version 0.1.7
                    
#r "nuget: QuoteFeed.Client, 0.1.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package QuoteFeed.Client@0.1.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=QuoteFeed.Client&version=0.1.7
                    
Install as a Cake Addin
#tool nuget:?package=QuoteFeed.Client&version=0.1.7
                    
Install as a Cake Tool

QuoteFeed

Высокопроизводительная система распределения биржевых котировок в реальном времени.

Описание

QuoteFeed — это платформа для получения котировок от различных поставщиков (брокеры через MT4/MT5, Interactive Brokers, FIX-протокол) и их распределения подписчикам с минимальной задержкой. Котировки передаются напрямую от узла-поставщика к клиентам по UDP, минуя центральный сервер.

Ключевые особенности

  • Низкая латентность — прямая доставка котировок по UDP, бинарный протокол, zero-copy сериализация
  • Универсальный формат — единая модель символов независимо от источника (MT4, MT5, FIX)
  • Масштабируемость — поддержка множества Provider Nodes в разных локациях
  • Работа с NAT — клиенты за NAT могут получать котировки без проброса портов
  • Модульность — легко добавлять новые источники котировок через систему коннекторов

Архитектура

┌─────────────────┐         ┌─────────────────┐
│   Master Node   │◄───────►│  Provider Node  │──── MT5 API ────► Broker A
│   (управление)  │         │  (котировки)    │──── MT4 API ────► Broker B
└────────┬────────┘         └────────┬────────┘
         │                           │
         │ gRPC                      │ UDP
         │                           │
         ▼                           ▼
┌─────────────────┐         ┌─────────────────┐
│ Backend Server  │         │     Clients     │
│   (ASP.NET)     │         │ (WPF/WinForms)  │
└─────────────────┘         └─────────────────┘

Master Node — центральный узел управления. Хранит справочник символов, управляет авторизацией, генерирует токены сессий. Не участвует в передаче котировок.

Provider Node — узел-поставщик. Подключается к брокерам через MT4/MT5 API, нормализует котировки, отправляет их клиентам по UDP.

Client Library — библиотека для интеграции в клиентские приложения.

Структура проекта

QuoteFeed/
├── docs/                           # Документация
│   └── SPECIFICATION.md            # Детальная спецификация
├── src/
│   ├── QuoteFeed.Core/             # Общие модели и утилиты
│   ├── QuoteFeed.Protocol/         # Бинарный протокол и сериализация
│   ├── QuoteFeed.Connectors/       # Общие коннекторы (папка Base и конкретные реализации)
│   ├── QuoteFeed.ProviderNode/     # Приложение Provider Node
│   ├── QuoteFeed.MasterNode/       # Приложение Master Node (ASP.NET Core)
│   └── QuoteFeed.Client/           # Клиентская библиотека
├── tests/                          # Тесты
├── samples/                        # Примеры использования
└── tools/                          # Вспомогательные утилиты

Требования

  • .NET 8.0 SDK
  • PostgreSQL 14+ (для production) или SQLite (для разработки)
  • Redis (опционально, для production)

Быстрый старт

Сборка

git clone https://github.com/your-org/QuoteFeed.git
cd QuoteFeed
dotnet build

Запуск Master Node

cd src/QuoteFeed.MasterNode
dotnet run

Локально в Development MasterNode поднимает два порта:

  • REST (HTTP/1.1): http://localhost:5000
  • gRPC (h2c, HTTP/2): http://localhost:5001

Запуск Provider Node

cd src/QuoteFeed.ProviderNode
dotnet run

Для локального smoke-теста (Master + Provider + Sample) по умолчанию используется src/QuoteFeed.ProviderNode/appsettings.Development.json:

  • Provider Node регистрируется в Master Node (gRPC) (http://localhost:5001)
  • включён Mock коннектор с символами EUR/USD (47) и XAU/USD (305)

Запуск тестового клиента

cd samples/QuoteFeed.SampleConsoleClient
dotnet run

По умолчанию sample клиент получает токен через Master Node (gRPC) (http://localhost:5001) и затем подключается к выбранному Provider Node по UDP.

Пример с явными параметрами:

dotnet run -- http://localhost:5001 sample-client 1 "EUR/USD,XAU/USD"

Конфигурация

Provider Node (appsettings.json)

См. пример: docs/config/providernode.appsettings.example.json.

Master Node (appsettings.json)

См. пример: docs/config/masternode.appsettings.example.json.

Документация

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.7 113 4/17/2026
0.1.6 129 3/3/2026
0.1.5 114 2/19/2026
0.1.4 114 2/9/2026
0.1.3 113 2/9/2026
0.1.2 115 2/3/2026