An ultra-fast .NET library for complex event processing and time series manipulation, handling historical and real-time data streams.
Spreads is a high-performance .NET library for complex event processing and time series manipulation. It provides series and panels to handle ordered data streams, enabling both historical analysis and real-time processing with the same code. The library focuses on ultra-fast performance, memory efficiency, and low-latency incremental calculations.
Developers and quantitative analysts working with high-frequency data streams, particularly in finance, who need to perform real-time complex event processing or time series analysis in .NET environments.
Spreads offers significantly faster performance and lower memory usage compared to other open-source alternatives, with declarative lazy evaluation and efficient join operations. Its design prioritizes mechanical sympathy to leverage modern CPU capabilities without the overhead of commercial systems.
Series and Panels for Real-time and Exploratory Analysis of Data Streams
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Processes tens of millions of items per second per thread with minimal memory allocations, as verified by internal benchmarks and focus on mechanical sympathy.
Uses buffer pools and compact storage for regular keys like DateTime, reducing memory usage by 50% and improving CPU cache performance.
Series transformations are evaluated on demand, avoiding unnecessary computations and enabling efficient real-time incremental calculations.
Supports inner and outer joins of multiple series declaratively, crucial for complex aggregations in financial data without pre-allocating memory.
The library is in alpha with the series and panels part under a very slow rewrite, indicating instability and incomplete features for new users.
Requires understanding advanced concepts like continuous vs. discrete series and lock-free synchronization, which can be daunting without extensive prior experience.
The README is admitted to be very old, and the library is primarily targeted at financial data, reducing accessibility for general-purpose time series tasks.