An experimental open-source desktop charting application. Currently supports Binance and Bybit
- Multiple chart/panel types:
- Heatmap (Historical DOM): Uses live trades and L2 orderbook data to create a time-series heatmap chart. Supports customizable price grouping and selectable time intervals. Includes a configurable fixed or visible range volume profile.
- Candlestick: Traditional kline chart supporting both time-based and custom tick-based intervals.
- Footprint: Price-grouped and interval-aggregated views for trades on top of candlestick chart; supports different clustering methods. Includes configurable imbalance and naked-POC studies.
- Time & Sales: Scrollable list of live trades.
- Real-time sound effects driven by trade streams
- Pane linking and grouping for quickly switching tickers across multiple panes
- Customizable and persistent layouts, themes, panel and chart settings
- By default,
FootprintChart
captures and plots live trades in real time via WebSocket. - For Binance tickers, you can optionally backfill the visible time range by enabling trade fetching in the settings:
- data.binance.vision: Fast daily bulk downloads (no intraday).
- REST API (e.g.,
/fapi/v1/aggTrades
): Slower, paginated intraday fetching (subject to rate limits). - The Binance connector can use either or both methods to retrieve historical data as needed.
- Trade fetching for Bybit tickers is not supported, as they lack a suitable REST API.
Prebuilt binaries for Windows, macOS, and Linux are available on the Releases page.
- Rust toolchain
- Git version control system
- System dependencies:
- Linux:
- Debian/Ubuntu:
sudo apt install build-essential pkg-config libasound2-dev
- Arch:
sudo pacman -S base-devel alsa-lib
- Fedora:
sudo dnf install gcc make alsa-lib-devel
- Debian/Ubuntu:
- macOS: Install Xcode Command Line Tools:
xcode-select --install
- Windows: No additional dependencies required
- Linux:
# Clone the repository
git clone https://github.com/akenshaw/flowsurface
cd flowsurface
# Build and run
cargo build --release
cargo run --release