9 releases
Uses new Rust 2024
| 0.1.9 | Dec 27, 2025 |
|---|---|
| 0.1.8 | Dec 27, 2025 |
#93 in Visualization
1.5MB
38K
SLoC
zengeld-canvas
High-performance SVG chart rendering engine for financial data visualization
A platform-agnostic rendering library for financial charts. Built in Rust with zero runtime dependencies.
Features
- 96 Drawing Primitives - Fibonacci, Gann, Pitchforks, Elliott Waves, Patterns, Channels, and more
- 45+ Indicator Presets - Pre-configured rendering styles for SMA, RSI, MACD, Bollinger, Ichimoku, etc.
- 12 Series Types - Candlestick, HeikinAshi, Line, Area, Histogram, Baseline, and more
- 14 Multi-Chart Layouts - Grid, split, and custom layouts for dashboards
- Platform Agnostic -
RenderContexttrait for any rendering backend - Zero Dependencies - Only serde for serialization
- Theme System - 4 built-in presets (dark, light, high_contrast, cyberpunk) + runtime customization
Installation
cargo add zengeld-canvas
Quick Start
use zengeld_canvas::{Chart, Bar, UITheme};
// Create chart with builder API
let svg = Chart::new(800, 600)
.bars(&bars)
.candlesticks()
.sma(20, "#2196F3")
.rsi(14)
.render_svg();
// With theme preset
let theme = UITheme::cyberpunk();
let svg = Chart::new(800, 600)
.bars(&bars)
.candlesticks()
.background(theme.colors.chart.background)
.colors(theme.colors.series.candle_up_body, theme.colors.series.candle_down_body)
.render_svg();
Examples
Light Theme |
High Contrast Theme |
Cyberpunk Theme |
Runtime Custom Theme |
Theme System
Built-in presets: dark, light, high_contrast, cyberpunk
use zengeld_canvas::{UITheme, RuntimeTheme};
// Static themes (compile-time)
let dark = UITheme::dark();
let light = UITheme::light();
// Runtime themes (modifiable, JSON support)
let mut theme = RuntimeTheme::from_preset("dark").unwrap();
theme.colors.chart.background = "#1a0a2e".to_string();
let json = theme.to_json();
Drawing Primitives
| Category | Count | Examples |
|---|---|---|
| Fibonacci | 11 | Retracement, Fan, Arcs, Circles, Channel, Spiral |
| Lines | 9 | TrendLine, HorizontalLine, Ray, ExtendedLine |
| Annotations | 11 | Text, Callout, PriceLabel, Flag, Table |
| Shapes | 10 | Rectangle, Circle, Ellipse, Triangle, Path |
| Elliott Waves | 5 | Impulse, Correction, Triangle, Combo |
| Patterns | 6 | XABCD, HeadShoulders, Cypher, ThreeDrives |
| Gann | 4 | Fan, Box, Square, SquareFixed |
| Channels | 4 | Parallel, Regression, Disjoint, FlatTopBottom |
| Pitchforks | 4 | Standard, Schiff, Modified, Inside |
| And more... | 32 | Cycles, Projections, Volume, Arrows, Events |
License
MIT OR Apache-2.0
Support the Project
If you find this library useful, consider supporting development:
| Currency | Network | Address |
|---|---|---|
| USDT | TRC20 | TNxMKsvVLYViQ5X5sgCYmkzH4qjhhh5U7X |
| USDC | Arbitrum | 0xEF3B94Fe845E21371b4C4C5F2032E1f23A13Aa6e |
| ETH | Ethereum | 0xEF3B94Fe845E21371b4C4C5F2032E1f23A13Aa6e |
| BTC | Bitcoin | bc1qjgzthxja8umt5tvrp5tfcf9zeepmhn0f6mnt40 |
| SOL | Solana | DZJjmH8Cs5wEafz5Ua86wBBkurSA4xdWXa3LWnBUR94c |
Dependencies
~0.4–1.3MB
~27K SLoC