QuoteFeed.Protocol 0.1.7

dotnet add package QuoteFeed.Protocol --version 0.1.7
                    
NuGet\Install-Package QuoteFeed.Protocol -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.Protocol" Version="0.1.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="QuoteFeed.Protocol" Version="0.1.7" />
                    
Directory.Packages.props
<PackageReference Include="QuoteFeed.Protocol" />
                    
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.Protocol --version 0.1.7
                    
#r "nuget: QuoteFeed.Protocol, 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.Protocol@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.Protocol&version=0.1.7
                    
Install as a Cake Addin
#tool nuget:?package=QuoteFeed.Protocol&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 (1)

Showing the top 1 NuGet packages that depend on QuoteFeed.Protocol:

Package Downloads
QuoteFeed.Client

Client library for QuoteFeed - easily integrate real-time market data into your .NET applications with auto-reconnect and dependency injection support.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.7 127 4/17/2026
0.1.6 145 3/3/2026
0.1.5 133 2/19/2026
0.1.4 132 2/9/2026
0.1.3 131 2/9/2026
0.1.2 133 2/3/2026