DEV Community

Cover image for I’m building an open-source crypto order-flow terminal in Rust
Nicolas Giuliani
Nicolas Giuliani

Posted on Edited on AI-assisted

I’m building an open-source crypto order-flow terminal in Rust

Hey DEV! I'm Nicolas, a software engineer and someone who's always been interested in financial markets, especially what's happening beneath traditional price charts.

Lately, I've been working on Flowdepth, an open-source desktop terminal for cryptocurrency order-flow and options analytics, built in Rust using Iced.

GitHub: https://github.com/Niketion/flowdepth

Why Flowdepth?

Most trading charts tell you where the price has been.

But what about the activity behind those movements?

Where is liquidity concentrated? Are aggressive buyers or sellers dominating? What happens inside the order book when price approaches an important level?

That's the kind of information I want to explore with Flowdepth.

Rather than focusing exclusively on candlesticks and traditional technical indicators, the goal is to bring together order-flow visualization, market microstructure, and crypto options analytics in a native desktop application.

What does it look like?

Flowdepth desktop terminal showing cryptocurrency market charts

Here's what's currently available:

  • Footprint charts: Visualize executed buying and selling volume at individual price levels.
  • L2 liquidity heatmaps: Explore historical order-book liquidity and how it changes over time.
  • Adaptive volume bubbles: Highlight significant clusters of aggressive trades.
  • Volume Profile and CVD: Analyze volume distribution and cumulative buying/selling pressure.
  • Options Gamma Exposure: Explore BTC, ETH, and SOL GEX profiles using Deribit data.
  • Experimental iceberg detection: Identify potential passive order replenishment patterns.
  • Crypto news tracker: Follow market headlines with asset filters and relevance scoring.

The application uses public exchange data, and its current market-analysis features don't require exchange trading API keys.

The interesting part: building it with Rust

For me, one of the most interesting aspects of this project isn't just rendering financial charts.

It's handling real-time market data reliably.

A trading terminal needs to deal with a few problems:

  • WebSocket connections can disconnect unexpectedly.
  • Different exchanges expose different historical-data capabilities.
  • Incoming trades and order-book updates need to remain consistent.
  • Missing data shouldn't silently become misleading visualizations.
  • The interface needs to stay usable while multiple data streams are active.

Flowdepth addresses these problems with persistent local caching, automatic reconnection, historical gap recovery, deduplication, and bounded retries.

The desktop interface is built with Rust and Iced, which has also made this an interesting project for exploring native GUI development.

There's still plenty of room for improvement, particularly around data coverage, responsiveness, and the overall user experience.

A bit of open-source history

Flowdepth didn't start entirely from scratch.

It originated from Flowsurface, an existing open-source Rust trading terminal.

I've been developing Flowdepth as an independent project, with its own roadmap and additional work around market-data handling, order-flow visualization, options analytics, and reliability.

The original Git history, contributors, and GPL license are preserved.

I think it's important to acknowledge that foundation, especially in open source.

Want to try it?

Flowdepth is currently in public beta, with downloadable builds for:

  • Windows
  • Linux
  • macOS

You can find the binaries, source code, and installation instructions here:

GitHub - Niketion/flowdepth

It's still experimental software, so bugs and regressions are possible. The Windows and macOS binaries are also not yet signed.

I'd love your feedback

I'm especially interested in hearing from people working with:

  • Rust and native desktop applications.
  • High-frequency or real-time data visualization.
  • WebSocket-heavy architectures.
  • Trading systems and financial market data.

If you've worked on similar applications, what was the hardest problem you encountered when handling real-time data?

And if you try Flowdepth, I'd love to hear what works, what breaks, or what you'd improve.

The project is open source, and contributions, issues, and technical discussions are welcome.

Thanks for checking it out!

Top comments (0)