https://github.com/stocksharp/ecng
System framework with utility projects. Used by StockSharp platform
https://github.com/stocksharp/ecng
aws fsharp ironpython json newtonsoft restsharp roslyn smartformat yandex
Last synced: 9 months ago
JSON representation
System framework with utility projects. Used by StockSharp platform
- Host: GitHub
- URL: https://github.com/stocksharp/ecng
- Owner: StockSharp
- Created: 2024-04-05T14:31:31.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-10-06T21:06:40.000Z (9 months ago)
- Last Synced: 2025-10-07T08:03:51.719Z (9 months ago)
- Topics: aws, fsharp, ironpython, json, newtonsoft, restsharp, roslyn, smartformat, yandex
- Language: C#
- Homepage: https://stocksharp.com
- Size: 107 MB
- Stars: 7
- Watchers: 1
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: Security/CryptoAlgorithm.cs
Awesome Lists containing this project
README

# ECNG System Framework
[](https://github.com/stocksharp/ecng/actions/workflows/dotnet.yml)
[](https://github.com/stocksharp/ecng/blob/master/LICENSE)
[](https://t.me/stocksharpchat)
The ECNG System Framework is a comprehensive collection of system classes designed for the development of connectors under the StockSharp platform. It provides a robust foundation for extending the functionality and performance of applications integrated with StockSharp, offering a wide range of utilities and enhancements for .NET standard types and beyond.
## Main Components
- **Ecng.Common**: Enhancements and extensions for standard .NET types, facilitating more efficient and streamlined development processes.
- **Ecng.Collections**: A set of additional collections that offer more functionalities and flexibility compared to the standard .NET collections.
- **Ecng.Serialization**: Custom serializers to JSON format, allowing for efficient serialization and deserialization of objects, crucial for network communication and data storage.
- **Ecng.Net**: Extensions for working with REST and WebSocket protocols, enabling seamless integration with web services and real-time data feeds.
## Purpose
This framework aims to simplify the complexities involved in developing connectors for the StockSharp platform by providing a rich set of utilities and classes. Whether it's enhancing basic .NET types, offering advanced collection structures, enabling custom serialization options, or facilitating network communications, the ECNG System Framework covers a wide spectrum of development needs.
## Getting Started
To get started with the ECNG System Framework, clone the repository from [GitHub](https://github.com/stocksharp/ecng) and explore the documentation for each component to understand its functionalities and how it can be integrated into your StockSharp platform projects.
## NuGet Packages
All projects within the ECNG System Framework are available as separate NuGet packages, which can be easily found with the prefix `Ecng`. For a detailed search of these packages, visit [NuGet.org](https://www.nuget.org/packages/?q=ecng).
## Project Overview
Below is a brief description of the projects included in this repository. Each
library is distributed as a separate NuGet package with the `Ecng` prefix.
- **Ecng.Common** [](https://www.nuget.org/packages/Ecng.Common) [](https://www.nuget.org/packages/Ecng.Common) – basic helpers and utility classes used throughout the framework.
- **Ecng.Collections** [](https://www.nuget.org/packages/Ecng.Collections) [](https://www.nuget.org/packages/Ecng.Collections) – additional collection types and algorithms.
- **Ecng.ComponentModel** [](https://www.nuget.org/packages/Ecng.ComponentModel) [](https://www.nuget.org/packages/Ecng.ComponentModel) – components implementing property change notifications and other design-time helpers.
- **Ecng.Configuration** [](https://www.nuget.org/packages/Ecng.Configuration) [](https://www.nuget.org/packages/Ecng.Configuration) – configuration infrastructure for reading and storing settings.
- **Ecng.Data** [](https://www.nuget.org/packages/Ecng.Data) [](https://www.nuget.org/packages/Ecng.Data) – common abstractions for data access layers.
- **Ecng.Data.Linq2db** [](https://www.nuget.org/packages/Ecng.Data.Linq2db) [](https://www.nuget.org/packages/Ecng.Data.Linq2db) – providers and helpers for [linq2db](https://github.com/linq2db/linq2db).
- **Ecng.Drawing** [](https://www.nuget.org/packages/Ecng.Drawing) [](https://www.nuget.org/packages/Ecng.Drawing) – lightweight primitives for UI-related drawing tasks.
- **Ecng.IO** [](https://www.nuget.org/packages/Ecng.IO) [](https://www.nuget.org/packages/Ecng.IO) – file system helpers and compression utilities.
- **Ecng.Interop** [](https://www.nuget.org/packages/Ecng.Interop) [](https://www.nuget.org/packages/Ecng.Interop) – cross‑platform interop helpers and unmanaged memory tools.
- **Ecng.Interop.Windows** [](https://www.nuget.org/packages/Ecng.Interop.Windows) [](https://www.nuget.org/packages/Ecng.Interop.Windows) – Windows‑specific interop functionality.
- **Ecng.Linq** [](https://www.nuget.org/packages/Ecng.Linq) [](https://www.nuget.org/packages/Ecng.Linq) – extensions for working with LINQ expressions and queries.
- **Ecng.Localization** [](https://www.nuget.org/packages/Ecng.Localization) [](https://www.nuget.org/packages/Ecng.Localization) – simple localization engine and resource helpers.
- **Ecng.Logging** [](https://www.nuget.org/packages/Ecng.Logging) [](https://www.nuget.org/packages/Ecng.Logging) – flexible logging framework with multiple listeners.
- **Ecng.MathLight** [](https://www.nuget.org/packages/Ecng.MathLight) [](https://www.nuget.org/packages/Ecng.MathLight) – small set of math and statistics utilities.
- **Ecng.Net** [](https://www.nuget.org/packages/Ecng.Net) [](https://www.nuget.org/packages/Ecng.Net) – core networking helpers including REST utilities.
- **Ecng.Net.Clients** [](https://www.nuget.org/packages/Ecng.Net.Clients) [](https://www.nuget.org/packages/Ecng.Net.Clients) – base classes for building HTTP clients.
- **Ecng.Net.SocketIO** [](https://www.nuget.org/packages/Ecng.Net.SocketIO) [](https://www.nuget.org/packages/Ecng.Net.SocketIO) – client implementation of the Socket.IO protocol.
- **Ecng.Nuget** [](https://www.nuget.org/packages/Ecng.Nuget) [](https://www.nuget.org/packages/Ecng.Nuget) – helpers for interacting with NuGet feeds.
- **Ecng.Reflection** [](https://www.nuget.org/packages/Ecng.Reflection) [](https://www.nuget.org/packages/Ecng.Reflection) – reflection extensions and dynamic type utilities.
- **Ecng.Security** [](https://www.nuget.org/packages/Ecng.Security) [](https://www.nuget.org/packages/Ecng.Security) – cryptography helpers and authorization primitives.
- **Ecng.Serialization** [](https://www.nuget.org/packages/Ecng.Serialization) [](https://www.nuget.org/packages/Ecng.Serialization) – serialization services for JSON and binary formats.
- **Ecng.Server.Utils** [](https://www.nuget.org/packages/Ecng.Server.Utils) [](https://www.nuget.org/packages/Ecng.Server.Utils) – utilities for hosting background services.
- **Ecng.UnitTesting** [](https://www.nuget.org/packages/Ecng.UnitTesting) [](https://www.nuget.org/packages/Ecng.UnitTesting) – additional assertions for unit tests.
- **Ecng.Backup** [](https://www.nuget.org/packages/Ecng.Backup) [](https://www.nuget.org/packages/Ecng.Backup) – abstractions for implementing backup services.
- **Ecng.Backup.AWS** [](https://www.nuget.org/packages/Ecng.Backup.AWS) [](https://www.nuget.org/packages/Ecng.Backup.AWS) – backup providers for Amazon S3 and Glacier.
- **Ecng.Backup.Azure** [](https://www.nuget.org/packages/Ecng.Backup.Azure) [](https://www.nuget.org/packages/Ecng.Backup.Azure) – backup provider for Azure storage.
- **Ecng.Backup.Mega** [](https://www.nuget.org/packages/Ecng.Backup.Mega) [](https://www.nuget.org/packages/Ecng.Backup.Mega) – provider for backups to MEGA cloud.
- **Ecng.Backup.Yandex** [](https://www.nuget.org/packages/Ecng.Backup.Yandex) [](https://www.nuget.org/packages/Ecng.Backup.Yandex) – provider for Yandex Disk based backups.
- **Ecng.Compilation** [](https://www.nuget.org/packages/Ecng.Compilation) [](https://www.nuget.org/packages/Ecng.Compilation) – dynamic compilation helpers and abstractions.
- **Ecng.Compilation.FSharp** [](https://www.nuget.org/packages/Ecng.Compilation.FSharp) [](https://www.nuget.org/packages/Ecng.Compilation.FSharp) – F# compiler integration.
- **Ecng.Compilation.Python** [](https://www.nuget.org/packages/Ecng.Compilation.Python) [](https://www.nuget.org/packages/Ecng.Compilation.Python) – utilities for running Python scripts.
- **Ecng.Compilation.Roslyn** [](https://www.nuget.org/packages/Ecng.Compilation.Roslyn) [](https://www.nuget.org/packages/Ecng.Compilation.Roslyn) – C# compiler services via Roslyn.
- **Ecng.Tests** – project containing unit tests for the libraries.
## Contribution
Contributions are welcome! If you have improvements or bug fixes, please feel free to fork the repository, make your changes, and submit a pull request.