MiniExcel.Rust 0.1.0-preview.1

Prefix Reserved
This is a prerelease version of MiniExcel.Rust.
dotnet add package MiniExcel.Rust --version 0.1.0-preview.1
                    
NuGet\Install-Package MiniExcel.Rust -Version 0.1.0-preview.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MiniExcel.Rust" Version="0.1.0-preview.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MiniExcel.Rust" Version="0.1.0-preview.1" />
                    
Directory.Packages.props
<PackageReference Include="MiniExcel.Rust" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MiniExcel.Rust --version 0.1.0-preview.1
                    
#r "nuget: MiniExcel.Rust, 0.1.0-preview.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MiniExcel.Rust@0.1.0-preview.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MiniExcel.Rust&version=0.1.0-preview.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=MiniExcel.Rust&version=0.1.0-preview.1&prerelease
                    
Install as a Cake Tool

<div align="center">

MiniExcel for Rust

简体中文 | 繁體中文 | Français | 日本語 | Español

Crates.io Downloads Documentation CI GitHub stars License

Fast XLSX and CSV processing with bounded-memory streaming.

</div>


<div align="center">

Part of the MiniExcel project family, with the .NET library as its compatibility reference.

</div>


<div align="center">

Open the Browser Lab to inspect or generate XLSX files locally. Workbook data stays in the browser.

</div>


Introduction

MiniExcel for Rust is an XLSX and CSV reader/writer with bounded-memory streaming, Serde support, analytics, and RAG exports.

Install

cargo add miniexcel

Requires Rust 1.85.0 or later.

.NET Package

The repository also builds the prerelease MiniExcel.Rust NuGet package. It depends on MiniExcel v1 1.46.0, reuses its configuration and mapping types, and routes calls made through MiniExcelRust to the Rust native library.

dotnet add package MiniExcel.Rust --prerelease
using MiniExcelLibs;
using MiniExcelLibs.OpenXml;

var rows = MiniExcelRust.Query(
    "book.xlsx",
    useHeaderRow: true,
    configuration: new OpenXmlConfiguration { IgnoreEmptyRows = true });

Use MiniExcel.Query for the original managed implementation and MiniExcelRust.Query for the Rust-backed implementation. Build and consume a local package with ./scripts/dotnet/Test-Package.ps1 -Rid win-x64.

Quick Start

use miniexcel::MiniExcel;

for row in MiniExcel::query("book.xlsx")? {
    println!("{:?}", row?["A"]);
}
use miniexcel::{CellValue, DynamicRow, MiniExcel};

let mut row = DynamicRow::new();
row.insert("Name".into(), CellValue::String("MiniExcel".into()));
MiniExcel::save_as("book.xlsx", &[row])?;

Capabilities

  • Bounded-memory dynamic, typed, structured, table, and CSV queries.
  • Path, byte-array, and borrowed reader/writer APIs.
  • Serde reading and writing; date/time helpers and exact-cell mapping.
  • Multi-sheet creation, formatting options, and worksheet visibility.
  • Atomic worksheet insert/replace, rename, reorder, copy, and visibility changes.
  • Template rendering, conditional/group blocks, and marker-driven cell merging.
  • Streaming grouped analytics with explicit limits.
  • Source-addressed JSONL and Markdown exports for LLM/RAG workflows.
  • Optional runtime-neutral async streams; ZIP/XML/filesystem work remains blocking.

Key Semantics

  • Path queries stream worksheet XML and do not retain all rows.
  • The default worksheet is the first worksheet, not the active tab.
  • Formula reads return cached values; structured reads also expose formula text and formats. MiniExcel does not calculate formulas.
  • Save creates a new workbook and refuses existing paths by default. Insert APIs modify .xlsx files atomically after validation.
  • Large shared-string tables may spill to indexed temporary files; byte/WASM queries keep them in memory.
  • Not supported: .xls, .xlsb, .ods, macros, image authoring, formula calculation, or a general style system.

See the compatibility matrix, analytics and RAG contract, and Insert migration guide.

Rust And .NET Benchmark

Place this repository beside .NET MiniExcel, then run:

pwsh ./scripts/compare-dotnet-v1-rust.ps1 -DotNetRepository D:\git\MiniExcel

The report is written to target/benchmarks/dotnet-v1-vs-rust.json. Compare only results produced on the same machine; see the benchmark methodology.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.1 59 9/9/2026