Skip to content

Repository files navigation

Flowsurface

Crates.io Lint Format Discord License: GPL v3 Made with iced

An open-source native desktop charting application for crypto markets. Supports Binance, Bybit, Hyperliquid, OKX, and MEXC.

Flowsurface screenshot

Key Features

  • Multiple chart/panel types:
    • Heatmap (Historical DOM): Uses live trades and L2 orderbook to create a time-series heatmap chart. Supports customizable price grouping, different time aggregations, 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 a candlestick chart. Supports different clustering methods, configurable imbalance and naked-POC studies.
    • Time & Sales: Scrollable list of live trades.
    • DOM (Depth of Market) / Ladder: Displays current L2 orderbook alongside recent trade volumes on grouped price levels.
    • Comparison: Line graph for comparing multiple data sources, normalized by kline close prices on a percentage scale
  • Real-time sound effects driven by trade streams
  • Multi window/monitor support
  • Pane linking for quickly switching tickers across multiple panes
  • Persistent layouts and customizable themes with editable color palettes

Historical Trades on Footprint Charts:

By default, Flowsurface captures and plots live trades in real time via WebSocket.

To backfill the visible time range on footprint charts, enable trade fetching in Settings → Network. Three modes are available:

  • Exchange: Fetches directly from Binance's public REST API and bulk data mirrors (data.binance.vision). Fast for daily archives; paginated and rate-limited for intraday ranges. Binance only (spot, linear, inverse).

  • Server: Fetches from any HTTP server that exposes a GET /trades.arrow endpoint returning an Arrow IPC stream with:

    • Response: Content-Type: application/vnd.apache.arrow.stream

    • Schema (columns matched by name, order not significant):

      ts (int64), price (float64), qty (float64), is_sell (bool)

    • Query parameters: venue, market, symbol, from (inclusive), to (inclusive), limit

    • Optional bearer-token auth: (Authorization: Bearer <token>)

    Self-signed TLS certificates are accepted. Works with all exchanges and has no exchange rate limits. Bring your own data source.

    A reference implementation is available at flowsurface-server, a self-contained collector that writes trades to DuckDB and serves them over this protocol.

  • Off: Live trades only; no historical backfill.

Historical klines, open interest, and ticker metadata/stats are always fetched from exchange REST APIs.
Live trades, orderbook and kline updates are streamed from exchange WebSocket feeds.

Installation

Method 1: Prebuilt Binaries

Standalone executables are available for Windows, macOS, and Linux on the Releases page.

Having trouble running the file? (Permission/Security warnings)

Since these binaries are currently unsigned they might get flagged.

  • Windows: If you see a "Windows protected your PC" pop-up, click More info -> Run anyway.
  • macOS: If you see "Developer cannot be verified", control-click (right-click) the app and select Open, or go to System Settings > Privacy & Security to allow it.

Method 2: Build from Source

Requirements

  • 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
    • macOS: Install Xcode Command Line Tools: xcode-select --install
    • Windows: No additional dependencies required

Option A: cargo install

# Install latest globally
cargo install --git https://github.com/flowsurface-rs/flowsurface flowsurface

# Run
flowsurface

Option B: Cloning the repo

# Clone the repository
git clone https://github.com/flowsurface-rs/flowsurface

cd flowsurface

# Build and run
cargo build --release
cargo run --release

Community

Discord: https://discord.gg/RN2XAF7ZuR

Acknowledgments

  • Free code signing for Windows releases is provided by SignPath.io, certificate by SignPath Foundation
  • Kraken Desktop (formerly Cryptowatch), the main inspiration that sparked this project
  • Halloy, an excellent open-source IRC client, the main reference for the foundational code design
  • And of course, iced, the GUI library that makes this possible

License

Flowsurface is released under the GPLv3 license. Contributions to the project are shared under the same license.

About

A native desktop charting platform for crypto markets

Topics

Resources

Stars

1.7k stars

Watchers

24 watching

Forks

Releases

Used by

Contributors

Languages