Skip to main content

Release Notes for Deephaven v0.10.0

· 3 min read
DALL·E prompt: Bright robot cyborg typing on a typewriter, neon lighting
Ryan Caudy

In addition to the explicit features articulated below, many important building blocks were put in place to support March and April deliveries intended to further improve ease of use and interoperability. Contributions were made to deephaven-core, barrage, and web-client-ui in support of these themes.


  • There will be an imminent announcement about a deephaven-core release candidate that intends to improve on the server-side Python experience. The intention is to release a “v2” of the Python API at the end of March. It targets a purer, cleaner, more idiomatic experience. The team hopes community users will provide feedback in February about the release candidate.
  • Infrastructure to support server-side and JS-client-side PlugIns has been completed. There are examples to walk you through adding matplotlib, seaborn, or a json-viewer to your deephaven-core instance.
  • You can now embed interactive Deephaven grids (i.e., streaming or static tables and viewports) in web iFrames. This provides unique opportunities for publishing and viewing streaming table data.
  • The performance profile of aggregations – for both incrementally-updating (streaming) and static cases – was meaningfully improved. Open addressed hashing algorithms are now being used for static cases, with incrementally rehash algorithms and a specialized index builder for modifications applied for the updating case. You should find aggregations to be significantly faster in this release by 10-40%.
  • Project jars were cleaned up and published, so you can easily deploy deephaven-core as a Java library. A how-to explaining that process will be published promptly.
  • Within the Deephaven Table widget user experience, you can now configure conditional formatting. Color formatting can be applied to a whole row or a particular column in a row based on conditions set by the user..

End-of-March deliveries will center around:

  • Release of the improved (“v2”) release of the server-side Python API.
  • Infrastructure to support using Deephaven as a Python library.
  • Performance measurement infrastructure, for both incrementally-updating and batch operations.
  • Dynamic data delivery from server to the C++ client using Barrage.

Full Release Summary

All release details can be explored in the Pull-Requests and related GitHub Issues itemized here.

Query engine

  • Small improvement to exception message when a natural join finds multiple right-hand matches.
  • Certain engine methods are now tagged to be excluded from Tier 4 JIT compilation.

Python, ML, AI, and Data Science

  • The Python Pandas integration model inherited some fixes.
  • A table agg_all_by() method now makes multi-aggregations more elegant and intuitive.

UI/UX and the JS API

  • BigDecimal and BigInteger formatting is now enabled in Deephaven table renderings.
  • The JS API was updated to specify viewport rows/columns when taking snapshots.


  • Reverse viewport logic is now implemented on BarrageSnapshotRequest, so pinning an updating table to the bottom should produce a more elegant experience in clients.
  • Barrage’s viewport snapshot functionality was improved and compatibility with the Apache Arrow Flight’s reference implementation of DoExchange was increased.

Data Sources and Sinks

  • The recently-released, deephaven-csv – a performant CSV reader with type inference – is now being employed within programmatic and UI-driven CSV ingestion.
  • Kafka publication and json docs, respectively, were addressed.

Further reading

Please find an itemization of February’s documentation changes in this blog post.