عارض

Preview real PowerPoint, Excel, and Word files in the browser — built with Arabic in mind.

One package for every Office file. Use all of it, or only the part you need.

Loading…

<!-- once, in your bundled app code: import "@aared/viewer/element"; -->
<aared-viewer
  src="./post-production-review.pptx">
</aared-viewer>

PPTX, XLSX and DOCX, processed in your browser. Local files are not uploaded. View-only: no editing, conversion or formula recalculation. Fidelity and limits.

Install

aared (عارض) is a TypeScript Office viewer, published on npm as @aared/viewer.

npm install @aared/viewer

Get started, or readplain Markdown for agents.

Why aared

Canvas-based previewers turn text into pixels, making text selection and Arabic fidelity harder to preserve.aared renders real DOM/SVG, so the browser's own text engine gets shaping, bidi and RTL right.

Fidelity is checked against native PowerPoint, Excel and Word output, with real Arabic text and tables in all three formats. Side-by-side comparisons record where aared preserves layout and RTL better than the browser libraries evaluated. Supported features and limits stay explicit; speed and memory have their own measurements below.

By the numbers

Measured on real files in a real browser, with the same open, move and destroy steps for every library. Method, machine and raw results are in BENCHMARKS.md.

The pinned example files in fixtures/. Switch to large files to see how cost grows with size.

Generated large files: 300 slides, 13 sheets of about 50,000 rows, a 40× document. The note beside each bar is how much more it cost than on the real files.

Download size

Gzipped KB the browser fetched to open each format’s example files: every library from one minified production build, with its dependencies, Workers and WASM. Smaller is better. Bars include aared's 82.9 KB parse Worker and extend's 39.2 KB parse Worker and silurus's 682 KB of WASM and extend's 1.7 MB of WASM. Aared measured 2026-10-14 on Chromium/155.0.0.0; the other renderers measured 2026-10-01 on Chromium/154.0.0.0.

PowerPoint

  • mdurbar29.4 KB
  • pptx-browser49.9 KB
  • aared138 KB
  • pptxviewjs259 KB
  • aiden0z391 KB
  • omni452 KB
  • extend507 KB
  • silurus944 KB

Excel

  • aared153 KB
  • sheetjs164 KB
  • omni179 KB
  • xlscalc331 KB
  • spreadsheet-preview438 KB
  • extend2.5 MB

Word

  • docx-preview51.5 KB
  • apollo53.6 KB
  • omni65.2 KB
  • docx-renderer136 KB
  • aared162 KB
  • extend635 KB

aared is the lowest in 1 of 3 formats.

PowerPoint: mdurbar is lighter because it draws about half of Office's preset shapes and turns the rest into rectangles, has no right-to-left text handling, and parses on the page; on the coverage deck it also paints one slide's table on every slide. aared ships Office's full preset-shape catalog.

Open speed

Milliseconds from bytes in hand to the first painted frame; the median across each format’s files. Smaller is better.

PowerPoint

  • pptx-browser32 ms
  • aared32 ms
  • mdurbar35 ms
  • pptxviewjs65 ms
  • extend74 ms
  • omni74 ms
  • aiden0z80 ms
  • silurus149 ms

Excel

  • aared28 ms
  • sheetjs45 ms
  • omni47 ms
  • extend117 ms
  • xlscalc134 ms
  • spreadsheet-preview416 ms

Word

  • aared52 ms
  • apollo65 ms
  • omni65 ms
  • docx-preview65 ms
  • extend768 ms
  • docx-renderer831 ms

aared is the lowest in 2 of 3 formats.

PowerPoint

  • pptx-browser32 ms
  • aared57 ms
  • mdurbar58 ms
  • extend118 ms
  • pptxviewjs118 ms
  • silurus215 ms
  • aiden0z246 ms
  • omni258 ms

Excel

  • sheetjs83 ms
  • aared91 ms
  • omni93 ms
  • extend254 ms
  • xlscalc312 ms
  • spreadsheet-preview575 ms

Word

  • docx-preview172 ms
  • apollo179 ms
  • omni183 ms
  • aared304 ms
  • extend966 ms
  • docx-renderer1.0 s

aared is the lowest in 0 of 3 formats.

PowerPoint

  • aared32 ms×1.0
  • pptx-browser49 ms×1.5
  • extend382 ms×5.2
  • mdurbar551 ms×16
  • silurus665 ms×4.5
  • pptxviewjs1.1 s×16
  • omni1.5 s×20
  • aiden0z2.8 s×34

Excel

  • aared29 ms×1.0
  • omni1.2 s×26
  • sheetjs1.3 s×28
  • spreadsheet-preview2.9 s×6.9
  • extend4.8 s×41
  • xlscalc12 s×90

Word

  • aared1.3 s×26
  • omni1.4 s×22
  • docx-preview1.5 s×24
  • apollo5.2 s×81
  • extend30 s×40

aared is the lowest in 3 of 3 formats.

PowerPoint

  • aared69 ms×1.2
  • pptx-browser74 ms×2.3
  • extend450 ms×3.8
  • mdurbar642 ms×11
  • silurus703 ms×3.3
  • pptxviewjs1.1 s×9.2
  • omni1.7 s×6.5
  • aiden0z3.1 s×12

Excel

  • aared67 ms×0.7
  • omni1.3 s×14
  • sheetjs1.4 s×17
  • spreadsheet-preview2.9 s×5.1
  • extend5.1 s×20
  • xlscalc12 s×40

Word

  • docx-preview1.6 s×9.4
  • omni1.6 s×8.9
  • aared1.7 s×5.6
  • apollo5.1 s×28
  • extend28 s×29

aared is the lowest in 2 of 3 formats.

Memory

MB the page and its Workers hold with one file open, after a forced garbage collection, once the library is loaded; the median across each format’s files. Smaller is better. Canvas pixels are not counted.

The same in a fresh page, so it includes loading the library’s own code. Smaller is better. Canvas pixels are not counted.

PowerPoint

  • extend0.1 MB
  • pptx-browser0.8 MB
  • aared0.8 MB(Page 0.2 MB · Workers 0.7 MB · Plus 1.7 MB in a Worker kept idle between opens)
  • mdurbar1.0 MB
  • pptxviewjs1.6 MB
  • silurus1.7 MB(Page 0.8 MB · Workers 0.9 MB)
  • omni5.2 MB
  • aiden0z5.7 MB

Excel

  • aared1.1 MB(Page 0.9 MB · Workers 0.1 MB · Plus 1.7 MB in a Worker kept idle between opens)
  • spreadsheet-preview1.2 MB
  • extend2.4 MB(Page 1.2 MB · Workers 1.2 MB)
  • sheetjs2.5 MB
  • omni2.9 MB
  • xlscalc2.9 MB

Word

  • docx-preview2.1 MB
  • apollo2.1 MB
  • aared2.5 MB(Page 2.2 MB · Workers 0.3 MB · Plus 2.0 MB in a Worker kept idle between opens)
  • omni2.8 MB
  • docx-renderer4.1 MB
  • extend5.2 MB

aared is the lowest in 1 of 3 formats.

PowerPoint

  • pptx-browser1.3 MB
  • mdurbar1.7 MB
  • aared2.8 MB(Page 1.1 MB · Workers 1.7 MB)
  • extend3.6 MB
  • silurus4.6 MB(Page 3.6 MB · Workers 0.9 MB)
  • pptxviewjs6.2 MB
  • omni11 MB
  • aiden0z11 MB

Excel

  • aared3.1 MB(Page 1.9 MB · Workers 1.2 MB)
  • sheetjs4.9 MB
  • omni5.4 MB
  • xlscalc9.2 MB
  • spreadsheet-preview11 MB
  • extend15 MB(Page 14 MB · Workers 1.2 MB)

Word

  • docx-preview3.2 MB
  • apollo3.3 MB
  • omni4.2 MB
  • aared6.8 MB(Page 5.0 MB · Workers 1.9 MB)
  • docx-renderer6.9 MB
  • extend9.2 MB

aared is the lowest in 1 of 3 formats.

PowerPoint

  • extend0.1 MB
  • aared1.4 MB(Page 0.2 MB · Workers 1.2 MB · Plus 1.4 MB in a Worker kept idle between opens)
  • silurus1.4 MB(Page 0.4 MB · Workers 1.0 MB)
  • pptx-browser6.6 MB
  • mdurbar10 MB
  • pptxviewjs42 MB
  • omni141 MB
  • aiden0z159 MB

Excel

  • aared2.6 MB(Page 0.7 MB · Workers 1.9 MB · Plus 1.4 MB in a Worker kept idle between opens)
  • extend3.1 MB(Page 1.2 MB · Workers 1.9 MB)
  • sheetjs58 MB
  • omni60 MB
  • spreadsheet-preview121 MB
  • xlscalc170 MB

Word

  • aared61 MB(Page 58 MB · Workers 2.3 MB · Plus 2.2 MB in a Worker kept idle between opens)
  • apollo68 MB
  • docx-preview70 MB
  • omni91 MB
  • extend174 MB

aared is the lowest in 2 of 3 formats.

PowerPoint

  • aared3.3 MB(Page 1.1 MB · Workers 2.2 MB)
  • silurus4.3 MB(Page 3.3 MB · Workers 1.0 MB)
  • pptx-browser7.1 MB
  • extend8.4 MB
  • mdurbar11 MB
  • pptxviewjs64 MB
  • omni150 MB
  • aiden0z167 MB

Excel

  • aared4.2 MB(Page 1.3 MB · Workers 3.0 MB)
  • extend38 MB(Page 37 MB · Workers 1.9 MB)
  • sheetjs62 MB
  • omni65 MB
  • spreadsheet-preview132 MB
  • xlscalc176 MB

Word

  • aared53 MB(Page 49 MB · Workers 4.1 MB)
  • apollo57 MB
  • docx-preview59 MB
  • omni81 MB
  • extend165 MB

aared is the lowest in 3 of 3 formats.

Search on large files

aared’s search(); the other libraries have no search. The first search reads every slide, sheet or section once; repeats scan what it kept.

PowerPoint · 0.9 MB

  • first search229 msreads every unit
  • repeat search0.3 msscans what it kept

Excel · 1.7 MB

  • first search702 msreads every unit
  • repeat search3.3 msscans what it kept

Word · 2.1 MB

  • first search28 msreads every unit
  • repeat search0.4 msscans what it kept

One machine (AMD Ryzen 7 6800H with Radeon Graphics, 15 GB, Chromium/155.0.0.0), measured Oct 14, 2026: 13 opens per cell with the first 2 discarded, medians reported. aared is re-measured now and then and the other libraries once, so code since may differ. Read these as the shape of the difference, not universal constants; they cover size, speed and memory, not fidelity.

set it upGetting startedInstall, pick an entry, copy a recipe, fix the usual first problems.try itPlaygroundTry your own file in every way to use aared.read itAPI referenceEvery function, option and event, in one page.