uPlot is a lightweight Canvas 2D-based charting library for time series, lines, areas, OHLC, and bar charts.
The library addresses the need for fast, memory-efficient charting without sacrificing interactivity or code size. It uses Canvas 2D rendering to achieve performance that scales linearly, rendering 166,650 data points in 25 milliseconds from a cold start and subsequently processing approximately 100,000 points per millisecond. The approach prioritizes zooming and cursor responsiveness while maintaining a minimal footprint of around 50 kilobytes, avoiding the higher startup costs and larger code sizes associated with WebGL or WebAssembly solutions.
Developers should choose uPlot for projects requiring real-time data visualization with strict performance constraints or limited bandwidth. It excels at streaming scenarios where live updates at 60 frames per second are needed, particularly when handling thousands of in-view data points. The tool suits dashboards, analytics platforms, and monitoring applications where responsiveness matters. When live-streaming 3,600 points at 60 frames per second, uPlot consumes approximately 10 percent CPU and 12.3 megabytes of RAM, substantially lower than comparable Canvas-based alternatives. For use cases exceeding 100,000 visible points or requiring even higher performance, the README recommends considering WebGL or WebGPU solutions instead.
The project maintains a focused scope, deliberately excluding certain features to preserve leanness and speed. Development activity shows consistent attention to performance optimization and streaming capabilities, with the codebase designed around a lean and powerful API that supports hooks and plugins for extensibility.