FastCharts.Core 1.0.0

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

FastCharts - High-Performance .NET Charting Library

<div align="center"> <img src="mabinogi-icon.png" alt="FastCharts" width="128" height="128">

NuGet Downloads Build Status License: MIT </div>

🌟 What is FastCharts?

FastCharts is a high-performance .NET charting library designed for real-time applications, financial dashboards, and data visualization scenarios requiring smooth rendering of massive datasets (10M+ points).

⚑ Key Features

  • πŸš€ Real-time Performance: 60 FPS rendering with LTTB decimation
  • πŸ“Š Rich Chart Types: Line, Scatter, Bar, Area, Band, OHLC, ErrorBar
  • 🎯 Multi-Axis Support: Independent left/right Y axes
  • πŸ“ˆ Advanced Axes: Linear, Logarithmic, Category with custom bases
  • πŸ”„ Streaming Data: Rolling windows with efficient append operations
  • 🎨 Interactive: Pan, zoom, crosshair, pinned tooltips
  • πŸ“ Annotations: Lines, ranges, labels with full styling
  • πŸ’Ύ Export Ready: PNG export with clipboard integration
  • 🌐 Cross-Platform: Windows, macOS, Linux support
  • πŸ—οΈ MVVM Ready: Full WPF integration with ReactiveUI

🎯 Perfect For

  • Financial Applications: Trading platforms, market analysis
  • Real-Time Dashboards: IoT monitoring, system metrics
  • Scientific Visualization: Research data, sensor readings
  • Business Intelligence: KPI dashboards, analytics
  • Desktop Applications: WPF apps with rich data visualization

πŸ“¦ Quick Start

dotnet add package FastCharts.Wpf

Basic Usage

XAML:

<Window xmlns:fc="clr-namespace:FastCharts.Wpf.Controls;assembly=FastCharts.Wpf">
    <fc:FastChart Model="{Binding ChartModel}" />
</Window>

C# Code:

using FastCharts.Core;
using FastCharts.Core.Series;

// Create chart model
var model = new ChartModel();

// Add data series
model.AddSeries(new LineSeries(new[] {
    new PointD(0, 10),
    new PointD(1, 20),
    new PointD(2, 15),
    new PointD(3, 25)
}) { 
    Title = "Sales Data",
    Color = ColorRgba.Blue,
    StrokeWidth = 2
});

// Bind to your ViewModel
this.DataContext = new { ChartModel = model };

Real-Time Streaming Example

// Create streaming series with rolling window
var streamingSeries = new StreamingLineSeries {
    Title = "Live Data",
    MaxPointCount = 1000, // Keep last 1000 points
    RollingWindowDuration = TimeSpan.FromMinutes(5)
};

// Add real-time data
streamingSeries.AppendPoint(new PointD(DateTime.Now.Ticks, sensorValue));

model.AddSeries(streamingSeries);

Multi-Axis Example

// Create chart with multiple Y axes
var model = new ChartModel();

// Add left axis series (temperature)
model.AddSeries(new LineSeries(temperatureData) {
    Title = "Temperature (Β°C)",
    YAxisIndex = 0, // Left Y axis
    Color = ColorRgba.Red
});

// Add right axis series (pressure) 
model.AddSeries(new LineSeries(pressureData) {
    Title = "Pressure (hPa)", 
    YAxisIndex = 1, // Right Y axis
    Color = ColorRgba.Blue
});

πŸ—οΈ Architecture

FastCharts uses a clean, modular architecture:

β”œβ”€β”€ FastCharts.Core          # Core algorithms & abstractions
β”œβ”€β”€ FastCharts.Rendering.Skia # Cross-platform rendering engine
└── FastCharts.Wpf           # WPF controls & MVVM integration

Package Selection Guide

Scenario Packages Needed
WPF Desktop App FastCharts.Wpf (includes others)
Cross-Platform Console FastCharts.Core + FastCharts.Rendering.Skia
Web API Chart Generation FastCharts.Core + FastCharts.Rendering.Skia
Business Logic Only FastCharts.Core

πŸ“Š Advanced Features

LTTB Decimation for Massive Datasets

var largeSeries = new LineSeries(millionsOfPoints) {
    EnableAutoResampling = true // Automatically reduces to screen resolution
};
// Maintains visual fidelity while ensuring 60 FPS performance

Performance Metrics Overlay

model.AddBehavior(new MetricsOverlayBehavior {
    ShowDetailed = true,
    Position = MetricsPosition.TopLeft
});
// Press F3 to toggle, F4 for detail level, F5 to reset

Interactive Behaviors

model.AddBehavior(new PanBehavior());
model.AddBehavior(new ZoomBehavior());
model.AddBehavior(new CrosshairBehavior());
model.AddBehavior(new PinnedTooltipBehavior()); // Right-click to pin tooltips

Annotations

// Add horizontal line annotation
model.AddAnnotation(new LineAnnotation {
    Type = LineAnnotationType.Horizontal,
    Value = 100,
    Label = "Target Value",
    Color = ColorRgba.Green
});

// Add range highlight
model.AddAnnotation(new RangeAnnotation {
    Type = RangeAnnotationType.Horizontal, 
    StartValue = 90,
    EndValue = 110,
    FillColor = ColorRgba.Green.WithAlpha(0.2f),
    Label = "Acceptable Range"
});

πŸš€ Performance

  • Rendering Speed: Up to 60 FPS for interactive charts
  • Memory Efficiency: Optimized for large datasets (10M+ points)
  • LTTB Algorithm: Reduces data while preserving visual fidelity
  • Hardware Acceleration: GPU-accelerated rendering via SkiaSharp
  • Streaming Optimized: Real-time updates with minimal overhead

🌐 Framework Support

Framework FastCharts.Core Rendering.Skia WPF
.NET Standard 2.0 βœ… βœ… ❌
.NET Framework 4.8 βœ… βœ… βœ…
.NET 6 βœ… βœ… βœ…
.NET 8 βœ… βœ… βœ…

Platforms: Windows, macOS, Linux (Core + Skia), Windows only (WPF)

πŸ“– Documentation

🀝 Contributing

We welcome contributions! See our Contributing Guide for details.

Development Setup

git clone https://github.com/MabinogiCode/FastCharts.git
cd FastCharts
dotnet restore
dotnet build
dotnet test # 594 tests should pass

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


<div align="center"> <strong>Made with ❀️ for the .NET community</strong><br> <sub>FastCharts - Where performance meets visualization</sub> </div>

Product 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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on FastCharts.Core:

Package Downloads
FastCharts.Rendering.Skia

Cross-platform rendering engine for FastCharts using SkiaSharp. Supports Windows, macOS, and Linux with hardware acceleration. Includes PNG export, vector graphics, and high-performance chart rendering.

FastCharts.Wpf

WPF controls for FastCharts charting library. Includes FastChart control with full MVVM support, interactive behaviors, and reactive UI integration. Supports .NET Framework 4.8, .NET 6, and .NET 8.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 234 12/15/2025

FastCharts v1.0.0 - Phase 1 Complete!

🚀 MAJOR FEATURES:
βœ… Multi-axis support (left/right Y axes)
βœ… Logarithmic axes with custom bases
βœ… Category axes for discrete data
βœ… Line and range annotations
βœ… PNG export with clipboard support
βœ… LTTB decimation for massive datasets (10M+ points)
βœ… Streaming series with rolling windows
βœ… Pinned tooltips (multi-tooltip support)
βœ… Performance metrics overlay
βœ… Cross-platform (.NET Standard 2.0, .NET 6/8, Framework 4.8)

🎯 13/13 Phase 1 features implemented
🧪 594 tests passing
📊 Production-ready for real-time and analytical applications

See GitHub for full documentation and examples.