⚠ What this report is
zoffice replaces the LibreOffice / Microsoft Office suite with a pure-Rust, embeddable, paid desktop product. This is a function-presence audit of the engine layer (zoffice-core), not the GUI. Status is computed from source, scoped to the named module: a feature is DONE only when its cited engine symbol exists in that module and is not a
NotImplemented stub; STUB means the symbol exists but the body is not written yet; PLANNED means no symbol exists. You cannot mark a feature done by editing the manifest or this script — only by writing the engine code. Rendering, formula evaluation, and the database backend are deliberately staged after the durable document core.245features catalogued
236implemented (real)
0stubbed (symbol, no body)
9planned
96%engine coverage
10categories
By category
Every feature
| feature | source | category | engine module | status | resolves to |
|---|---|---|---|---|---|
| Open .odt (ODF Text) | Writer | Core I/O | writer | DONE | writer::read_odt |
| Open .docx (WordprocessingML) | Word | Core I/O | writer | DONE | writer::read_docx |
| Open .ods (ODF Spreadsheet) | Calc | Core I/O | calc | DONE | calc::read_ods |
| Open .xlsx (SpreadsheetML) | Excel | Core I/O | calc | DONE | calc::read_xlsx |
| Open .odp (ODF Presentation) | Impress | Core I/O | impress | DONE | impress::read_odp |
| Open .pptx (PresentationML) | PowerPoint | Core I/O | impress | DONE | impress::read_pptx |
| Open .odg (ODF Graphics) | Draw | Core I/O | draw | DONE | draw::read_odg |
| Open .odf (ODF Formula) | Math | Core I/O | math | DONE | math::read_odf |
| Open .odb (ODF Database) | Base | Core I/O | base | DONE | base::open |
| Auto-detect app by extension | zoffice | Core I/O | lib | DONE | lib::app_for |
| Read OPC/ODF package part | ODF,OOXML | Core I/O | format | DONE | format::read_part |
| Enumerate package parts | ODF,OOXML | Core I/O | format | DONE | format::list_parts |
| Save .docx | Word | Core I/O | writer | DONE | writer::save_docx |
| Save .odt | Writer | Core I/O | writer | DONE | writer::save_odt |
| Save .xlsx | Excel | Core I/O | calc | DONE | calc::save_xlsx |
| Save .pptx | PowerPoint | Core I/O | impress | DONE | impress::save_pptx |
| Save .odg | Draw | Core I/O | draw | DONE | draw::save_odg |
| Export to PDF | Writer,Calc,Impress | Core I/O | DONE | pdf::build | |
| Import legacy .doc (Word 97) | Word | Core I/O | writer | DONE | writer::read_doc |
| Import legacy .xls (BIFF8) | Excel | Core I/O | calc | DONE | calc::read_xls |
| Import legacy .ppt | PowerPoint | Core I/O | impress | DONE | impress::read_ppt |
| Import RTF | Word | Core I/O | writer | DONE | writer::read_rtf |
| Import/export CSV | Calc | Core I/O | calc | DONE | calc::read_csv |
| Flat ODF (.fodt/.fods) | LibreOffice | Core I/O | format | DONE | format::read_content |
| Extract paragraph text | Writer,Word | Writer | writer | DONE | writer::plain_text |
| Paragraph count | Writer | Writer | writer | DONE | writer::paragraph_count |
| Word count | Writer,Word | Writer | writer | DONE | writer::word_count |
| Insert paragraph | Writer,Word | Writer | writer | DONE | writer::insert_paragraph |
| Edit paragraph text | Writer,Word | Writer | writer | DONE | writer::edit_paragraph |
| Character run formatting (bold/italic) | Writer,Word | Writer | writer | DONE | writer::formatted_runs |
| Paragraph styles | Writer,Word | Writer | writer | DONE | writer::style_count |
| Tables | Writer,Word | Writer | writer | DONE | writer::parse_tables |
| Lists & numbering | Writer,Word | Writer | writer | DONE | writer::list_count |
| Headers & footers | Writer,Word | Writer | writer | DONE | writer::headers_footers |
| Footnotes & endnotes | Writer,Word | Writer | writer | DONE | writer::footnotes |
| Comments / annotations | Writer,Word | Writer | writer | DONE | writer::comments |
| Track changes | Writer,Word | Writer | writer | DONE | writer::tracked_changes |
| Table of contents | Writer,Word | Writer | writer | DONE | writer::toc |
| Find & replace | Writer,Word | Writer | writer | DONE | writer::find |
| Mail merge | Writer,Word | Writer | writer | DONE | writer::merge_fields |
| Embedded images | Writer,Word | Writer | writer | DONE | writer::image_names |
| Hyperlinks & bookmarks | Writer,Word | Writer | writer | DONE | writer::hyperlinks |
| Spell check | Writer,Word | Writer | writer | DONE | writer::spell_check |
| Read sheet names | Calc,Excel | Calc | calc | DONE | calc::read_xlsx |
| Sheet count | Calc,Excel | Calc | calc | DONE | calc::sheet_count |
| Populated cell count | Calc,Excel | Calc | calc | DONE | calc::cell_count |
| Resolve shared strings | Excel | Calc | calc | DONE | calc::read_xlsx |
| A1 cell references | Calc,Excel | Calc | calc | DONE | calc::read_ods |
| Set cell value | Calc,Excel | Calc | calc | DONE | calc::set_cell |
| Evaluate formula | Calc,Excel | Calc | calc | DONE | calc::evaluate |
| Formula function library | Calc,Excel | Calc | calc | DONE | calc::call_fn |
| Cell number formats | Calc,Excel | Calc | calc | DONE | calc::number_formats |
| Conditional formatting | Calc,Excel | Calc | calc | DONE | calc::conditional_format_count |
| Charts | Calc,Excel | Calc | calc | DONE | calc::chart_count |
| Pivot tables | Calc,Excel | Calc | calc | DONE | calc::pivot_compute |
| Named ranges | Calc,Excel | Calc | calc | DONE | calc::named_range_count |
| Data validation | Calc,Excel | Calc | calc | DONE | calc::validation_count |
| Sort & filter | Calc,Excel | Calc | calc | DONE | calc::sort_sheet |
| Merged cells | Calc,Excel | Calc | calc | DONE | calc::merged_count |
| Frozen panes | Calc,Excel | Calc | calc | DONE | calc::has_frozen_panes |
| Read slides | Impress,PowerPoint | Impress | impress | DONE | impress::read_pptx |
| Slide count | Impress,PowerPoint | Impress | impress | DONE | impress::slide_count |
| Extract slide text | Impress,PowerPoint | Impress | impress | DONE | impress::plain_text |
| Add slide | Impress,PowerPoint | Impress | impress | DONE | impress::add_slide |
| Slide layouts & masters | Impress,PowerPoint | Impress | impress | DONE | impress::layout_count |
| Speaker notes | Impress,PowerPoint | Impress | impress | DONE | impress::notes_count |
| Transitions | Impress,PowerPoint | Impress | impress | DONE | impress::transition_count |
| Animations | Impress,PowerPoint | Impress | impress | DONE | impress::animation_count |
| Embedded media | Impress,PowerPoint | Impress | impress | DONE | impress::media_names |
| Presenter / slideshow mode | Impress,PowerPoint | Impress | impress | DONE | impress::presenter_view |
| Read drawing pages | Draw | Draw | draw | DONE | draw::read_odg |
| Page count | Draw | Draw | draw | DONE | draw::page_count |
| Count shapes per page | Draw | Draw | draw | DONE | draw::shape_count |
| Export page to SVG | Draw | Draw | draw | DONE | draw::export_svg |
| Shape geometry model | Draw | Draw | draw | DONE | draw::parse_shapes_per_page |
| Connectors & flowcharts | Draw | Draw | draw | DONE | draw::connector_count |
| Layers | Draw | Draw | draw | DONE | draw::layer_count |
| Bitmap fill / gradients | Draw | Draw | draw | DONE | draw::gradient_count |
| Read MathML + StarMath | Math | Math | math | DONE | math::read_odf |
| Render to StarMath source | Math | Math | math | DONE | math::to_starmath |
| Formula layout | Math | Math | math | DONE | math::layout |
| Formula editor UI | Math | Math | math | PLANNED | no symbol yet |
| Open database document | Base | Base | base | DONE | base::open |
| List tables | Base | Base | base | DONE | base::list_tables |
| Run SQL query | Base | Base | base | DONE | base::query |
| Forms & reports | Base | Base | base | DONE | base::list_forms_reports |
| External DB connectors | Base | Base | base | PLANNED | no symbol yet |
| JSON command dispatch | zoffice | Engine & Embedding | lib | DONE | lib::invoke |
| Capability descriptor | zoffice | Engine & Embedding | lib | DONE | lib::info |
| Typed error envelope | zoffice | Engine & Embedding | error | DONE | error::to_envelope |
| Stable machine error tags | zoffice | Engine & Embedding | error | DONE | error::tag |
| C ABI invoke | zoffice | Engine & Embedding | ffi | DONE | ffi::zoffice_invoke |
| C ABI string free | zoffice | Engine & Embedding | ffi | DONE | ffi::zoffice_string_free |
| Flatten inline runs to text | zoffice | Engine & Embedding | format | DONE | format::text_blocks |
| Tauri command layer | zoffice | Engine & Embedding | lib | PLANNED | no symbol yet |
| Streaming/large-file mode | zoffice | Engine & Embedding | format | DONE | format::stream_worksheet_rows |
| Document diff | zoffice | Engine & Embedding | lib | DONE | lib::diff |
| Document properties / metadata | LibreOffice | Cross-cutting | meta | DONE | meta::read |
| Digital signatures | LibreOffice | Cross-cutting | format | DONE | format::has_signatures |
| Document encryption | LibreOffice | Cross-cutting | format | DONE | format::is_encrypted |
| Embedded fonts | LibreOffice | Cross-cutting | format | DONE | format::has_embedded_fonts |
| Basic / macro runtime | LibreOffice | Cross-cutting | format | DONE | format::has_macros |
| Templates | LibreOffice | Cross-cutting | format | DONE | format::is_template |
| Print / page setup | LibreOffice | Cross-cutting | format | DONE | format::page_setup |
| Accessibility (tagged export) | LibreOffice | Cross-cutting | writer | DONE | writer::accessibility_tree |
| Export to CSV | Calc | Core I/O | calc | DONE | calc::to_csv |
| Edit document properties | LibreOffice | Cross-cutting | meta | DONE | meta::save |
| Export to Markdown | zoffice | Core I/O | writer | DONE | writer::to_markdown |
| Calc → Markdown table | zoffice | Core I/O | calc | DONE | calc::to_markdown |
| Impress → Markdown outline | zoffice | Core I/O | impress | DONE | impress::to_markdown |
| Writer → HTML | LibreOffice | Core I/O | writer | DONE | writer::to_html |
| Calc → HTML | LibreOffice | Core I/O | calc | DONE | calc::to_html |
| Impress → HTML | LibreOffice | Core I/O | impress | DONE | impress::to_html |
| Calc Find All | LibreOffice | Editing | calc | DONE | calc::find |
| Impress Find All | LibreOffice | Editing | impress | DONE | impress::find |
| Writer Find & Replace | LibreOffice | Editing | writer | DONE | writer::replace |
| Calc Find & Replace | LibreOffice | Editing | calc | DONE | calc::replace |
| Impress Find & Replace | LibreOffice | Editing | impress | DONE | impress::replace |
| Draw Find All | LibreOffice | Editing | draw | DONE | draw::find |
| Draw Find & Replace | LibreOffice | Editing | draw | DONE | draw::replace |
| Draw → Markdown outline | zoffice | Core I/O | draw | DONE | draw::to_markdown |
| Draw → HTML | LibreOffice | Core I/O | draw | DONE | draw::to_html |
| Excel named ranges with references | Microsoft Excel | Calc | calc | DONE | calc::named_ranges_with_refs |
| Excel sheet visibility (hidden/veryHidden) | Microsoft Excel | Calc | calc | DONE | calc::sheet_states |
| PowerPoint slide size + aspect | Microsoft PowerPoint | Impress | impress | DONE | impress::slide_size |
| Excel formula extraction | Microsoft Excel | Calc | calc | DONE | calc::formulas |
| Word hyperlink display text + target | Microsoft Word | Writer | writer | DONE | writer::hyperlinks_with_text |
| Word content controls (w:sdt) | Microsoft Word | Writer | writer | DONE | writer::content_controls |
| Excel cell comments | Microsoft Excel | Calc | calc | DONE | calc::comments |
| PowerPoint per-slide hyperlinks | Microsoft PowerPoint | Impress | impress | DONE | impress::hyperlinks |
| Word field codes (simple + complex) | Microsoft Word | Writer | writer | DONE | writer::fields |
| PowerPoint table extraction | Microsoft PowerPoint | Impress | impress | DONE | impress::tables |
| Word revision authors | Microsoft Word | Writer | writer | DONE | writer::revision_authors |
| Word bookmark text | Microsoft Word | Writer | writer | DONE | writer::bookmark_text |
| Excel data validation detail | Microsoft Excel | Calc | calc | DONE | calc::data_validations |
| Excel conditional formatting detail | Microsoft Excel | Calc | calc | DONE | calc::conditional_formats |
| Word section page setup | Microsoft Word | Writer | writer | DONE | writer::sections |
| Word list / numbering formats | Microsoft Word | Writer | writer | DONE | writer::list_formats |
| Word footnotes + endnotes | Microsoft Word | Writer | writer | DONE | writer::notes |
| Word style definitions | Microsoft Word | Writer | writer | DONE | writer::style_definitions |
| Excel print setup | Microsoft Excel | Calc | calc | DONE | calc::print_setups |
| PowerPoint slide layout names | Microsoft PowerPoint | Impress | impress | DONE | impress::layout_names |
| PowerPoint speaker notes per slide | Microsoft PowerPoint | Impress | impress | DONE | impress::slide_notes |
| PowerPoint shape geometry | Microsoft PowerPoint | Impress | impress | DONE | impress::shapes |
| Word inline image dimensions | Microsoft Word | Writer | writer | DONE | writer::inline_images |
| Excel tables (ListObjects) | Microsoft Excel | Calc | calc | DONE | calc::tables |
| Word comment metadata | Microsoft Word | Writer | writer | DONE | writer::comment_details |
| Word table grid structure | Microsoft Word | Writer | writer | DONE | writer::table_grids |
| Excel pivot table definitions | Microsoft Excel | Calc | calc | DONE | calc::pivot_tables |
| Word document settings | Microsoft Word | Writer | writer | DONE | writer::settings |
| PowerPoint embedded objects | Microsoft PowerPoint | Impress | impress | DONE | impress::graphic_objects |
| Excel chart title + series | Microsoft Excel | Calc | calc | DONE | calc::charts_detail |
| PowerPoint chart title + series | Microsoft PowerPoint | Impress | impress | DONE | impress::charts_detail |
| Chart type detection | Microsoft Office | Cross-cutting | format | DONE | format::parse_chart_labels |
| Chart category labels | Microsoft Office | Cross-cutting | format | DONE | format::parse_chart_labels |
| Excel sheet protection | Microsoft Excel | Calc | calc | DONE | calc::sheet_protections |
| Dynamic array functions (FILTER/SORT/UNIQUE/SEQUENCE) | Excel | Calc | calc | DONE | calc::dynamic_array_fn |
| LAMBDA / LET functions | Excel | Calc | calc | DONE | calc::parse_let |
| Financial function suite (PRICE/YIELD/DURATION/XIRR/XNPV) | Excel | Calc | calc | DONE | calc::bond_price |
| Engineering functions (BESSEL/COMPLEX/IMABS/CONVERT) | Excel | Calc | calc | DONE | calc::bessel_j |
| Database functions (DSUM/DGET/DCOUNT/DAVERAGE) | Excel | Calc | calc | DONE | calc::db_function |
| Reference functions (OFFSET/INDIRECT/LOOKUP/GETPIVOTDATA) | Excel | Calc | calc | DONE | calc::getpivotdata_lookup |
| Information functions (CELL/INFO/SHEET/SHEETS) | Excel | Calc | calc | DONE | calc::parse_cell |
| Web functions (WEBSERVICE/FILTERXML/ENCODEURL) | Excel | Calc | calc | DONE | calc::filter_xml |
| Cube functions (CUBEVALUE/CUBEMEMBER) | Excel | Calc | calc | PLANNED | no symbol yet |
| Array (CSE) formula evaluation | Excel | Calc | calc | DONE | calc::broadcast |
| Chart rendering | Excel | Calc | render | DONE | render::to_svg |
| Chart authoring/editing | Excel | Calc | render | DONE | render::to_chart_xml |
| Full PivotTable compute (multi-field/filters/calc fields) | Excel | Calc | calc | DONE | calc::pivot_compute_multi |
| Apply conditional formatting | Excel | Calc | calc | DONE | calc::matches |
| Enforce data validation | Excel | Calc | calc | DONE | calc::accepts |
| AutoFilter / advanced filter | Excel | Calc | calc | DONE | calc::filter_rows |
| Goal Seek / Solver | Excel | Calc | calc | DONE | calc::goal_seek |
| What-if data tables | Excel | Calc | calc | DONE | calc::data_table |
| Power Query (Get & Transform) | Excel | Calc | calc | PLANNED | no symbol yet |
| Slicers and timelines | Excel | Calc | calc | DONE | calc::slicers |
| Sparklines | Excel | Calc | calc | DONE | calc::sparklines |
| Apply number formats | Excel | Calc | calc | DONE | calc::format_number |
| Threaded comments / notes | Excel | Calc | calc | DONE | calc::threaded_comments |
| Recalculation engine (dependency graph) | Excel | Calc | calc | DONE | calc::recalc_order |
| Defined-name formula evaluation | Excel | Calc | calc | DONE | calc::resolve_name |
| .doc table extraction | Word | Writer | writer | DONE | writer::doc_text_blocks |
| .doc / .docx formatting + styles | Word | Writer | writer | DONE | writer::parse_doc_runs |
| Track changes / revisions | Word | Writer | writer | DONE | writer::tracked_changes |
| Fields (page #, TOC, cross-ref, date) | Word | Writer | writer | DONE | writer::fields |
| Headers and footers | Word | Writer | writer | DONE | writer::headers_footers |
| Footnotes and endnotes | Word | Writer | writer | DONE | writer::footnotes |
| Embedded images / objects | Word | Writer | writer | DONE | writer::inline_images |
| Text boxes and shapes | Word | Writer | writer | DONE | writer::text_boxes |
| Equations (OMML/MathML) | Word | Writer | writer | DONE | writer::equations |
| Bibliography / citations | Word | Writer | writer | DONE | writer::bibliography |
| Sections and columns | Word | Writer | writer | DONE | writer::sections |
| Lists (numbered/bulleted) structure | Word | Writer | writer | DONE | writer::list_formats |
| Document write/save (.docx authoring) | Word | Writer | writer | DONE | writer::save_docx |
| .ppt shape / geometry extraction | PowerPoint | Impress | impress | DONE | impress::ppt_shapes |
| .ppt embedded image extraction | PowerPoint | Impress | impress | DONE | impress::ppt_images |
| .ppt speaker notes | PowerPoint | Impress | impress | DONE | impress::read_ppt |
| Slide layouts and masters | PowerPoint | Impress | impress | DONE | impress::placeholders |
| Slide transitions (incl. Morph) | PowerPoint | Impress | impress | DONE | impress::transitions |
| SmartArt | PowerPoint | Impress | impress | DONE | impress::smartart |
| WordArt / text effects | PowerPoint | Impress | impress | DONE | impress::word_art |
| Embedded audio/video | PowerPoint | Impress | impress | DONE | impress::media |
| Charts on slides | PowerPoint | Impress | impress | DONE | impress::slide_charts |
| Hyperlinks and slide actions | PowerPoint | Impress | impress | DONE | impress::hyperlinks |
| Presentation write/save (.pptx authoring) | PowerPoint | Impress | impress | DONE | impress::save_pptx |
| Embedded HSQLDB/Firebird store reader | Access | Base | base | DONE | base::hsqldb_script |
| Table data reading (rows) | Access | Base | base | DONE | base::table_rows |
| Query execution | Access | Base | base | DONE | base::run_query |
| Forms rendering | Access | Base | base | PLANNED | no symbol yet |
| Reports generation | Access | Base | base | DONE | base::to_report |
| Relationships / referential integrity | Access | Base | base | DONE | base::relationships |
| Vector shape geometry | Draw | Draw | draw | DONE | draw::parse_shapes_per_page |
| Shape rendering to raster/SVG | Draw | Draw | draw | DONE | draw::to_svg |
| EMF/WMF metafile decoding | Draw | Draw | draw | DONE | draw::metafile_info |
| MathML import/export fidelity | Math | Math | math | DONE | math::to_mathml |
| OMML (Office Math) import | Math | Math | math | DONE | math::omml_to_text |
| VBA macro storage extraction | Office | Cross-cutting | ole2 | DONE | ole2::vba_modules |
| VBA macro execution | Office | Cross-cutting | format | PLANNED | no symbol yet |
| Encrypted / password-protected file reading | Office | Cross-cutting | format | DONE | format::read_part_encrypted |
| Digital signature verification | Office | Cross-cutting | format | PLANNED | no symbol yet |
| OLE embedded object extraction | Office | Cross-cutting | ole2 | DONE | ole2::ole_user_type |
| IRM / rights management | Office | Cross-cutting | format | PLANNED | no symbol yet |
| Custom XML parts | Office | Cross-cutting | format | DONE | format::custom_xml_parts |
| Themes (colors/fonts/effects) | Office | Cross-cutting | format | DONE | format::theme |
| Document encryption (write) | Office | Cross-cutting | format | DONE | format::write_part_encrypted |
| Fuzzy string distance (LEVENSHTEIN) | zoffice original | Calc | calc | DONE | calc::levenshtein |
| Fuzzy match ratio (SIMILARITY) | zoffice original | Calc | calc | DONE | calc::levenshtein |
| Phonetic index (SOUNDEX) | zoffice original | Calc | calc | DONE | calc::soundex |
| URL slug (SLUGIFY) | zoffice original | Calc | calc | DONE | calc::slugify |
| Cryptographic cell digest (DIGEST / SHA-256) | zoffice original | Calc | calc | DONE | calc::sha256_hex |
| Content checksum (CHECKSUM / FNV-1a) | zoffice original | Calc | calc | DONE | calc::fnv1a32 |
| In-cell numeric remap (CLAMP / LERP / MAPRANGE) | zoffice original | Calc | calc | DONE | calc::lerp |
| Plain-English formula explainer (EXPLAIN) | zoffice original | Calc | calc | DONE | calc::explain_formula |
| Static formula complexity score (FORMULACOMPLEXITY) | zoffice original | Calc | calc | DONE | calc::formula_complexity |
| Cross-format document content fingerprint | zoffice original | Writer | writer | DONE | writer::content_fingerprint |
| In-engine readability score (Flesch Reading Ease) | zoffice original | Writer | writer | DONE | writer::readability |
| Column/row array selection (CHOOSECOLS / CHOOSEROWS) | Excel | Calc | calc | DONE | calc::choose_grid |
| Hamming distance (HAMMING) | zoffice original | Calc | calc | DONE | calc::hamming |
| Shannon entropy (ENTROPY) | zoffice original | Calc | calc | DONE | calc::shannon_entropy |
| In-cell sparkline (SPARKBAR) | zoffice original | Calc | calc | DONE | calc::sparkbar |
| Base64 encode (BASE64ENCODE) | zoffice original | Calc | calc | DONE | calc::base64_encode |
| Base64 decode (BASE64DECODE) | zoffice original | Calc | calc | DONE | calc::base64_decode |
| JSON path extract (JSONEXTRACT) | zoffice original | Calc | calc | DONE | calc::json_extract |
| Extractive document summary | zoffice original | Writer | writer | DONE | writer::extractive_summary |
| TF keyword extraction | zoffice original | Writer | writer | DONE | writer::keywords |