Univer Rust formula engine: millions of formulas on the server

Univer Rust formula engine benchmark: 10 workbooks, nearly 2 million formula nodes, Excel and LibreOffice comparisons, charts and XLSX downloads.

The Univer Rust formula engine provides server-side spreadsheet calculation for Univer Office SDK, powering batch processing, report generation and agent automation. As budgets, forecasts and business rules grow to hundreds of thousands or millions of formulas, calculation becomes an essential part of the application.

We tested 10 workbooks covering repeated formulas, conditional statistics, cross-sheet budgets and forecast models. Three results illustrate the scale of work the engine can handle:

  • Nearly 2 million formula nodes: 12.29 seconds for native loading and full calculation.
  • A project budget across 54 sheets: 1.27 seconds.
  • A sales COUNTIFS workload: 3.54 seconds.

Performance across 10 workbooks

Rust timings include native snapshot loading and full calculation, excluding XLSX-to-snapshot conversion. Excel and LibreOffice timings include opening the source XLSX and full recalculation.

Seconds; lower is faster. The chart uses a logarithmic scale.

Complete results and workbook downloads

Click a workbook name to download its source XLSX and explore the workload.

WorkbookUniver Rust formula engine
Native load + calculation (s)
Excel
Open + full recalculation (s)
LibreOffice
Open + full recalculation (s)
Half-million formulas3.542.3918.74
Mixed formula workload5.083.119.72
Forecast model · large17.678.5512.86
Large business analysis12.2910.808.99
Sales COUNTIFS3.5419.47320.01
Multi-sheet project budget1.270.732.96
Aggregation formulas0.271.033.10
Nested IF and workdays1.653.482.21
CBAM calculation model1.190.741.83
Forecast model · small13.025.797.61

Different models, different strengths

In this set of workloads, the Univer Rust formula engine performs well on conditional counts, aggregation and workday calculations. The results also show that formula count alone does not determine processing time: range sizes, function combinations and dependencies matter.

Excel and LibreOffice finish the forecast models sooner, leaving a clear direction for further optimization. Keeping every result visible helps developers judge the workloads that matter to their applications.

Bring calculation into your Office application

The Univer Rust formula engine is part of the server-side calculation path in Office SDK. Applications can calculate a captured content revision, save the results in its snapshot, and let the frontend reuse valid values when opening the content. The frontend formula engine continues to respond to user edits.

This gives developers a way to build background reports, batch processing and agent tasks around the same content runtime, with calculated results available for the next step of the workflow.

Explore Headless and server-side calculation, or build your first application with the Office SDK getting started guide.

Test methods and workbook details

The timed paths use different input formats: Rust loads preconverted native engine JSON; Excel and LibreOffice open XLSX, including document processing such as styles. The figures compare those specified processing paths. Application startup, offline conversion and validation after timing are excluded. No opening-time baseline is subtracted.

Rust uses one warmup and five measured runs per workbook, each in a separate process with a new document. Rust results are medians.

Reference environment for Excel and LibreOffice: Windows 11, Intel Core i7-13700H, about 32 GB RAM. Excel: 16.0 build 20527.0, 20 calculation threads; LibreOffice: 26.8.1.1, CPU multi-threaded calculation enabled, without OpenCL acceleration. The Rust rerun uses 20 threads.

EngineTimed operationReported statistic
Univer Rust formula engineOne continuous timer: read native snapshot file → deserialize JSON → load_snapshot → build dependencies → force all formulas → apply results. Offline XLSX conversion excluded.1 warmup + 5 measured runs per sample; median. Each run uses an independent process and a new document; 20 threads.
Excel COMFresh Workbooks.Open through CalculateFullRebuild() return, including explicit dependency rebuilding and full recalculation.1 warmup + 5 measured runs per workbook; median.
LibreOffice headless / UNOFresh XLSX open through calculateAll() return, including work performed during document opening.5-run median, except sales COUNTIFS, which is one successful diagnostic run.

Rust loading and calculation stages

Each stage has an independently calculated median, so the stage medians need not add up to the median continuous total.

WorkbookNative file read,
deserialization + load (s)
Dependencies, full calculation
+ result application (s)
Continuous
total (s)
Half-million formulas1.272.253.54
Mixed formula workload0.604.505.08
Forecast model · large3.6513.9417.67
Large business analysis2.659.4612.29
Sales COUNTIFS0.612.973.54
Multi-sheet project budget0.390.881.27
Aggregation formulas0.090.180.27
Nested IF and workdays0.271.401.65
CBAM calculation model0.091.081.19
Forecast model · small2.4010.2013.02

What is inside each workbook?

Formula counts are executable formula nodes, not necessarily physical formula cells. Data cells are non-formula cells containing values, including headers. The suite contains nine primary workbooks and one supplementary scale variant, rather than ten independent formula families.

WorkbookFormula nodesData cells / sheetsFormula characteristics
Half-million formulas500,0011,000,047 / 2SUM, AVERAGE, IF, XLOOKUP; large numbers of repeated formulas.
Mixed formula workload367,954432,055 / 7SUMIF, AVERAGEIFS; conditional statistics mixed with dates and text.
Forecast model · large1,463,7211,549,982 / 46 nesting levels; INDEX, LARGE, OFFSET, MATCH and arrays.
Large business analysis1,992,537113,084 / 317 nesting levels; cross-sheet references, text processing and compatibility formulas.
Sales COUNTIFS349,630299,573 / 2IF, AND, COUNTIFS; conditional-count ranges that grow with each row.
Multi-sheet project budget68,576101,378 / 5454 sheets; cross-sheet budgets using VLOOKUP and INDIRECT.
Aggregation formulas26,9516,841 / 2IFERROR, AVERAGE, SUM; aggregations with long argument lists.
Nested IF and workdays118,821338 / 110 nested IF levels; workday calculations using NETWORKDAYS.
CBAM calculation model52,73913,738 / 196 nesting levels; lookups, conditional statistics, dynamic references and matrices.
Forecast model · small974,6251,040,507 / 4The same formula family as the large forecast model, at a smaller scale.

Data, validation and reproduction

The report checks formula counts and sampled values against reference results. This supports calculation completeness for the tested path, without establishing that every formula result is identical across products.

Recalculation APIs: Excel CalculateFullRebuild and LibreOffice calculateAll.

© 2026 DreamNum Co., Ltd.