leeoniya/uplot

📈 A small, fast chart for time series, lines, areas, ohlc & bars

View on GitHub ↗Jump to charts ↓Open shareable report →

Summary Information

Updated 18 minutes ago
Added to GitGenius on September 5th, 2026
Created on September 27th, 2019
Open Issues & Pull Requests: 149 (+0)
GitHub issues: Enabled
Number of forks: 459
Total Stargazers: 10,476 (+0)
Total Subscribers: 61 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.1 hours
Mean response time: 26.0 days
90th percentile: 123.1 days
Tracked items: 144

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 94% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 9% of issues opened in the past year have been closed. Three people close 83% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 34
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 442 days
Stale 30+ days: 31
Stale 90+ days: 28

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • question (80)
  • bug (7)
  • demos (4)
  • enhancement (4)
  • invalid (1)
  • plugin (1)

Most active issues this week

Detailed Description

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.