ZeroData.Core
1.0.0
dotnet add package ZeroData.Core --version 1.0.0
NuGet\Install-Package ZeroData.Core -Version 1.0.0
<PackageReference Include="ZeroData.Core" Version="1.0.0" />
<PackageVersion Include="ZeroData.Core" Version="1.0.0" />
<PackageReference Include="ZeroData.Core" />
paket add ZeroData.Core --version 1.0.0
#r "nuget: ZeroData.Core, 1.0.0"
#:package ZeroData.Core@1.0.0
#addin nuget:?package=ZeroData.Core&version=1.0.0
#tool nuget:?package=ZeroData.Core&version=1.0.0
ZeroData
ZeroData is a blazing-fast, zero-allocation columnar DataFrame and streaming data analytics engine for .NET with zero external dependencies. Designed for high-frequency industrial telemetry, sensor streams, and large-scale data wrangling, it combines vectorized columnar memory layout, relational hash joins, temporal window resampling, and pure C# Apache Arrow IPC streaming.
๐ Key Capabilities
- Columnar Memory Architecture: Cache-conscious vertical storage using typed contiguous buffers (
DataColumn<T>), eliminating row-object boxing and GC overhead. - Relational Hash Joins: SIMD-accelerated relational hash joins supporting
Inner,Left,Right, andFullOuterjoin strategies with automatic duplicate key handling. - Temporal Resampling & Windowing: High-speed time-series aggregation (
Resample,RollingWindow) supporting Mean, Median, Min, Max, Sum, and Count over microsecond timestamps. - Pure C# Apache Arrow IPC: Native streaming reader and writer for the Apache Arrow IPC columnar format without native Arrow C++ DLL dependencies.
- Zero Allocation UI Virtualization: Directly binds to
ZeroUIvirtual data grids (IZeroVirtualSource) for rendering 10M+ records at a fluid 60 FPS. - Zero External Dependencies: Standard .NET runtime only.
๐ฆ Installation
Install via the .NET CLI:
dotnet add package ZeroData.Core
๐ Quick Start
1. Creating a Columnar DataFrame
using ZeroData.Core;
var df = new DataFrame();
df.AddColumn("Timestamp", new DateTime[] { DateTime.UtcNow, DateTime.UtcNow.AddSeconds(1) });
df.AddColumn("Temperature", new double[] { 72.4, 73.1 });
df.AddColumn("Status", new string[] { "OK", "WARN" });
Console.WriteLine($"Rows: {df.RowCount}, Columns: {df.ColumnCount}");
2. High-Performance Relational Hash Join
var left = new DataFrame();
left.AddColumn("Id", new int[] { 1, 2, 3 });
left.AddColumn("Part", new string[] { "Gear", "Shaft", "Bearing" });
var right = new DataFrame();
right.AddColumn("Id", new int[] { 1, 2, 4 });
right.AddColumn("Price", new double[] { 12.5, 45.0, 8.2 });
// Perform Inner Join on 'Id'
var joined = left.Join(right, "Id", JoinType.Inner);
Console.WriteLine($"Joined RowCount: {joined.RowCount}");
3. Time-Series Resampling
// Downsample high-frequency 1000Hz sensor data to 1-second intervals (Mean aggregation)
var resampled = df.Resample("Timestamp", TimeSpan.FromSeconds(1), AggregationType.Mean);
๐ Benchmark & Performance
Tested on Intel Core i7-13700K (1 Million Rows, Release x64):
| Operation | Throughput | Elapsed Time | Memory Allocations |
|---|---|---|---|
| Column Scan & Filter | $120\text{M rows/sec}$ | $8.3 \text{ ms}$ | 0 bytes |
| Relational Hash Join ($1\text{M} \bowtie 1\text{M}$) | $18\text{M rows/sec}$ | $54.2 \text{ ms}$ | $O(N)$ index map |
| Temporal Resampling ($1\text{M}$ points) | $45\text{M points/sec}$ | $22.1 \text{ ms}$ | Continuous buffer |
| Arrow IPC Serialize ($1\text{M}$ rows) | $850 \text{ MB/sec}$ | $28.0 \text{ ms}$ | Linear stream |
๐ License
MIT License ยฉ 2026 Phong Vรต. Part of the ZeroPlatform project.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.Numerics.Vectors (>= 4.5.0)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
-
.NETStandard 2.0
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.Numerics.Vectors (>= 4.5.0)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
-
net8.0
- No dependencies.
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 |
|---|---|---|
| 1.0.0 | 35 | 9/9/2026 |