How Infinite Table compares

An honest look at Infinite Table next to 13 popular data grids: what each one includes, what it costs, how much code it adds to your app, and when it is the better choice.

Every claim about another product links to its official docs or pricing page, with the date we last checked it.

Pick a comparison

Infinite Table vs AG Grid

AG Grid Ltd · MIT core + paid editionsAG Grid has the widest feature set and four frameworks. Infinite Table includes grouping, pivoting and tree data in one zero-dependency package, free to use with a footer.Read the comparison →

Infinite Table vs MUI X Data Grid

MUI · MIT core + paid editionsBoth are declarative React grids. MUI X fits a Material UI app; Infinite Table has grouping, pivoting and tree data without a paid tier and without a design-system dependency.Read the comparison →

Infinite Table vs TanStack Table

TanStack · MITTanStack Table gives you table logic and leaves the UI to you. Infinite Table is a finished grid: virtualized, keyboard-navigable and themed, configured with props.Read the comparison →

Infinite Table vs Handsontable

Handsoncode · Commercial, free for non-commercial useHandsontable is a spreadsheet-like grid with formulas and Excel-style editing. Infinite Table is a data grid for exploring large datasets, with grouping, pivoting and server-side loading.Read the comparison →

Infinite Table vs DevExtreme DataGrid

DevExpress · CommercialDevExtreme DataGrid is one component in a large commercial UI suite. Infinite Table is a single, zero-dependency data grid, free to use with a footer.Read the comparison →

Infinite Table vs Syncfusion React Grid

Syncfusion · Free tier + paid editionsSyncfusion's Grid is part of a huge component suite with a free license for small companies. Infinite Table is one zero-dependency grid, free for everyone with a footer.Read the comparison →

Infinite Table vs KendoReact Grid

Progress (Telerik) · Free tier + paid editionsKendoReact has a free Grid and a Premium one with more features. Infinite Table has every feature in one zero-dependency package, free to use with a footer.Read the comparison →

Infinite Table vs Glide Data Grid

Glide · MITGlide Data Grid draws cells on a canvas and leaves sorting and filtering to you. Infinite Table renders DOM cells and has data operations built in.Read the comparison →

Infinite Table vs react-data-grid

Comcast (open source, originally Adazzle) · MITreact-data-grid is a small, dependency-free MIT grid that leaves data operations to you. Infinite Table, also dependency-free, has them built in.Read the comparison →

Infinite Table vs Material React Table

Kevin Van Cott (open source) · MITMaterial React Table is a ready-made Material UI table on top of TanStack Table. Infinite Table is a design-system-agnostic grid with zero dependencies.Read the comparison →

Infinite Table vs Mantine React Table

Kevin Van Cott (open source) · MITMantine React Table is a ready-made Mantine table on top of TanStack Table. Infinite Table is a design-system-agnostic grid with zero dependencies.Read the comparison →

Infinite Table vs RevoGrid

Revolist · MIT core + paid editionsRevoGrid is a web-component grid with an MIT core and inexpensive Pro plans. Infinite Table is a React and Vue grid with every feature in one package.Read the comparison →

Infinite Table vs Wijmo FlexGrid

MESCIUS · CommercialWijmo FlexGrid is a long-standing commercial grid licensed per developer and per deployment hostname. Infinite Table has development licenses only, and is free with a footer.Read the comparison →

At a glance

Dependencies count the packages npm install adds besides the grid itself and the framework. Sizes are for the minimal getting-started usage. Details on each comparison page.

Every data grid at a glance
Data gridFree for commercial usePaid editions fromGroupingPivotingTree dataDependenciesJS, gzipFrameworks
Infinite TableDOM, with row and column virtualization.Yeswith a "Powered by" footer$395 per developer per yearYesYesYes0145 kBReact, Vue
AG GridDOM, with row and column virtualization.YesMIT$999 per developerYes (Enterprise)Yes (Enterprise)Yes (Enterprise)7344 kBReact, Angular, Vue, JavaScript
MUI X Data GridDOM, with row and column virtualization.YesMIT$299 per developer per yearYes (Premium)Yes (Premium)Yes (Pro)86238 kBReact
TanStack TableHeadless: you render all the markup and styles.YesMIT–Logic onlyNoLogic only49.9 kBReact, Preact, Vue, Solid, Svelte, Angular, Ember, Lit, Alpine, JavaScript
HandsontableDOM, with row and column virtualization.Nofree for non-commercial useContact sales (no public list price)NoNoPartial0355 kBReact, Angular, Vue, JavaScript
DevExtreme DataGridDOM, with optional row and column virtualization.No$899.99 per developer per yearYesPartialPartial42693 kBReact, Angular, Vue, jQuery, ASP.NET
Syncfusion React GridDOM, with optional row and column virtualization.YesSyncfusion Community License (small companies)$959 per developer per yearYesPartialPartial20275 kBReact, Angular, Vue, JavaScript, Blazor, ASP.NET
KendoReact GridDOM, with optional row and column virtualization.YesKendoReact FreeFrom $649 per developer per yearYes (Premium)Partial (Premium)Partial (Premium)90242 kBReact
Glide Data GridHTML canvas, drawing cells on demand.YesMIT–NoNoNo81108 kBReact
react-data-gridDOM, with row and column virtualization.YesMIT–YesNoNo023.9 kBReact
Material React TableDOM, Material UI table built on TanStack Table; virtualization is opt-in.YesMIT–YesNoYes94242 kBReact
Mantine React TableDOM, Mantine table built on TanStack Table; virtualization is opt-in.YesMIT–YesNoYes106165 kBReact
RevoGridDOM web component, with row and column virtualization.YesMIT$199 per developer per yearYesYes (Pro Advanced)Yes (Pro Lite)1111 kBReact, Vue, Angular, Svelte, JavaScript, Web Components
Wijmo FlexGridDOM, with row and column virtualization.No$799 per developerYesYesYes7212 kBReact, Angular, Vue, JavaScript, Web Components

Every feature, every grid

Where a feature needs a paid edition, the edition is named. Hover a cell for notes, click it for the vendor's documentation.

  • Built in
  • Partial / with limits
  • Logic only (headless)
  • Not available
  • Pro = needs that paid edition
Features of every data grid we compare, with the edition that includes them
FeatureInfinite TableFree for commercial useAG GridFree for commercial useMUI X Data GridFree for commercial useTanStack TableFree for commercial useHandsontablePaid for commercial useDevExtreme DataGridPaid for commercial useSyncfusion React GridFree for commercial useKendoReact GridFree for commercial useGlide Data GridFree for commercial usereact-data-gridFree for commercial useMaterial React TableFree for commercial useMantine React TableFree for commercial useRevoGridFree for commercial useWijmo FlexGridPaid for commercial use
Rendering
Row virtualization
Partialfull in Pro
YesPremium
Column virtualization
Columns
Multi-column sorting
Partialfull in Pro
Partialfull in Premium
No
Column filters
Partialfull in Pro
No
No
Column resizing
Column reordering
Column pinning
YesPremium
Column groups
YesPremium
Column menu
YesEnterprise
No
YesPremium
No
No
No
Grouping and analysis
Row grouping
YesEnterprise
YesPremium
No
YesPremium
No
Aggregations
YesEnterprise
YesPremium
YesPremium
No
YesPro Lite
Pivoting
YesEnterprise
YesPremium
No
No
PartialPremium
No
No
No
No
YesPro Advanced
Tree data
YesEnterprise
PartialPremium
No
No
YesPro Lite
Master-detail
YesEnterprise
No
YesPremium
No
No
YesPro Lite
Server data
Lazy loading
No
YesPremium
No
No
No
YesPro Lite
Server-side sort, filter and group
Partialfull in Enterprise
Partialfull in Premium
YesPremium
No
No
Pagination UI
No
No
No
YesPro Lite
Editing and interaction
Cell editing
No
Row selection
YesPro Lite
Cell selection
YesEnterprise
YesPremium
No
No
No
No
Keyboard navigation
No
Context menu
YesEnterprise
No
No
YesPremium
No
YesPro Lite
No
Row drag and drop
No
No
No
Export and charts
Clipboard
No
YesEnterprise
Partialfull in Premium
No
No
YesPremium
CSV export
No
No
No
No
No
No
Excel export
No
YesEnterprise
YesPremium
No
YesPremium
No
No
No
No
YesPro Lite
Integrated charts
No
YesEnterprise
YesPremium
No
No
No
No
YesPremium
No
No
No
PartialPro Lite
Styling and accessibility
Theming with CSS variables
No
No
Documented accessibility
No
No
No
Right-to-left
No
No

Bundle size and dependencies

Bundle size and dependencies
PackageJS, min + gzipCSS, min + gzipRuntime dependenciesFrom other publishers
Infinite Table for React@infinite-table/infinite-react@10.1.4145 kB5.7 kB00
Infinite Table for Vue@infinite-table/infinite-vue@10.1.4126 kB5.4 kB00
AG Grid Communityag-grid-react@36.3.0 + ag-grid-community@36.3.0344 kB–7
listag-charts-types@14.3.0, ag-stack@36.3.0, js-tokens@4.0.0, loose-envify@1.4.0, object-assign@4.1.1, prop-types@15.8.1, react-is@16.13.1
5
AG Grid Enterpriseag-grid-react@36.3.0 + ag-grid-community@36.3.0 + ag-grid-enterprise@36.3.0775 kB–11
listag-charts-community@14.3.0, ag-charts-core@14.3.0, ag-charts-enterprise@14.3.0, ag-charts-locale@14.3.0, ag-charts-types@14.3.0, ag-stack@36.3.0, js-tokens@4.0.0, loose-envify@1.4.0, object-assign@4.1.1, prop-types@15.8.1, react-is@16.13.1
5
MUI X Data Grid (Community)@mui/x-data-grid@9.17.0238 kB–86
list@babel/code-frame@7.29.7, @babel/generator@7.29.13, @babel/helper-globals@7.29.7, @babel/helper-module-imports@7.29.7, @babel/helper-string-parser@7.29.13, @babel/helper-validator-identifier@7.29.7, @babel/parser@7.29.13, @babel/runtime@7.29.13, @babel/template@7.29.7, @babel/traverse@7.29.13, @babel/types@7.29.11, @base-ui/utils@0.5.0, @emotion/babel-plugin@11.13.5, @emotion/cache@11.14.0, @emotion/hash@0.9.2, @emotion/is-prop-valid@1.4.0, @emotion/memoize@0.9.0, @emotion/react@11.14.0, @emotion/serialize@1.3.3, @emotion/sheet@1.4.0, @emotion/styled@11.14.1, @emotion/unitless@0.10.0, @emotion/use-insertion-effect-with-fallbacks@1.2.0, @emotion/utils@1.4.2, @emotion/weak-memoize@0.4.0, @floating-ui/utils@0.2.12, @jridgewell/gen-mapping@0.3.13, @jridgewell/resolve-uri@3.1.2, @jridgewell/sourcemap-codec@1.6.0, @jridgewell/trace-mapping@0.3.31, @mui/core-downloads-tracker@9.5.0, @mui/material@9.5.0, @mui/private-theming@9.5.0, @mui/styled-engine@9.5.0, @mui/system@9.5.0, @mui/types@9.5.0, @mui/utils@9.5.0, @mui/x-internals@9.17.0, @mui/x-virtualizer@0.7.5, @popperjs/core@2.11.8, @types/parse-json@4.0.2, @types/prop-types@15.7.15, @types/react-transition-group@4.4.12, @types/react@19.3.0, babel-plugin-macros@3.1.0, callsites@3.1.0, clsx@2.1.1, convert-source-map@1.9.0, cosmiconfig@7.1.0, csstype@3.2.3, debug@4.4.3, dom-helpers@5.2.1, error-ex@1.3.4, es-errors@1.3.0, escape-string-regexp@4.0.0, find-root@1.1.0, function-bind@1.1.2, hasown@2.0.4, hoist-non-react-statics@3.3.2, import-fresh@3.3.1, is-arrayish@0.2.1, is-core-module@2.18.0, js-tokens@4.0.0, jsesc@3.1.0, json-parse-even-better-errors@2.3.1, lines-and-columns@1.2.4, loose-envify@1.4.0, ms@2.1.3, object-assign@4.1.1, parent-module@1.0.1, parse-json@5.2.0, path-parse@1.0.7, path-type@4.0.0, picocolors@1.1.1, prop-types@15.8.1, react-is@16.13.1, react-is@19.3.1, react-transition-group@4.4.5, reselect@5.3.0, resolve-from@4.0.0, resolve@1.22.14, source-map@0.5.7, stylis@4.2.0, supports-preserve-symlinks-flag@1.0.0, use-sync-external-store@1.7.0, yaml@1.10.3
77
MUI X Data Grid Premium@mui/x-data-grid-premium@9.17.0627 kB–119
list@babel/code-frame@7.29.7, @babel/generator@7.29.13, @babel/helper-globals@7.29.7, @babel/helper-module-imports@7.29.7, @babel/helper-string-parser@7.29.13, @babel/helper-validator-identifier@7.29.7, @babel/parser@7.29.13, @babel/runtime@7.29.13, @babel/template@7.29.7, @babel/traverse@7.29.13, @babel/types@7.29.11, @base-ui/utils@0.5.0, @emotion/babel-plugin@11.13.5, @emotion/cache@11.14.0, @emotion/hash@0.9.2, @emotion/is-prop-valid@1.4.0, @emotion/memoize@0.9.0, @emotion/react@11.14.0, @emotion/serialize@1.3.3, @emotion/sheet@1.4.0, @emotion/styled@11.14.1, @emotion/unitless@0.10.0, @emotion/use-insertion-effect-with-fallbacks@1.2.0, @emotion/utils@1.4.2, @emotion/weak-memoize@0.4.0, @fast-csv/format@5.0.8, @fast-csv/parse@5.0.8, @fingerprintjs/fingerprintjs@3.4.2, @floating-ui/utils@0.2.12, @jridgewell/gen-mapping@0.3.13, @jridgewell/resolve-uri@3.1.2, @jridgewell/sourcemap-codec@1.6.0, @jridgewell/trace-mapping@0.3.31, @mui/core-downloads-tracker@9.5.0, @mui/material@9.5.0, @mui/private-theming@9.5.0, @mui/styled-engine@9.5.0, @mui/system@9.5.0, @mui/types@9.5.0, @mui/utils@9.5.0, @mui/x-data-grid-pro@9.17.0, @mui/x-data-grid@9.17.0, @mui/x-internal-exceljs-fork@5.0.0, @mui/x-internals@9.17.0, @mui/x-license@9.17.0, @mui/x-telemetry@9.17.0, @mui/x-virtualizer@0.7.5, @popperjs/core@2.11.8, @types/node@14.18.63, @types/parse-json@4.0.2, @types/prop-types@15.7.15, @types/react-transition-group@4.4.12, @types/react@19.3.0, babel-plugin-macros@3.1.0, callsites@3.1.0, ci-info@4.5.0, clsx@2.1.1, convert-source-map@1.9.0, core-util-is@1.0.3, cosmiconfig@7.1.0, csstype@3.2.3, dayjs@1.11.23, debug@4.4.3, dom-helpers@5.2.1, error-ex@1.3.4, es-errors@1.3.0, escape-string-regexp@4.0.0, fast-csv@5.0.8, find-root@1.1.0, function-bind@1.1.2, hasown@2.0.4, hoist-non-react-statics@3.3.2, immediate@3.0.6, import-fresh@3.3.1, inherits@2.0.4, is-arrayish@0.2.1, is-core-module@2.18.0, is-docker@4.0.0, isarray@1.0.0, js-tokens@4.0.0, jsesc@3.1.0, json-parse-even-better-errors@2.3.1, jszip@3.10.2, lie@3.3.0, lines-and-columns@1.2.4, loose-envify@1.4.0, ms@2.1.3, node-machine-id@1.1.12, object-assign@4.1.1, pako@1.0.11, parent-module@1.0.1, parse-json@5.2.0, path-parse@1.0.7, path-type@4.0.0, picocolors@1.1.1, process-nextick-args@2.0.1, prop-types@15.8.1, react-is@16.13.1, react-is@19.3.1, react-transition-group@4.4.5, readable-stream@2.3.8, readable-stream@3.6.2, reselect@5.3.0, resolve-from@4.0.0, resolve@1.22.14, safe-buffer@5.1.2, safe-buffer@5.2.1, saxes@5.0.1, setimmediate@1.0.5, source-map@0.5.7, string_decoder@1.1.1, string_decoder@1.3.0, stylis@4.2.0, supports-preserve-symlinks-flag@1.0.0, tslib@2.9.1, use-sync-external-store@1.7.0, util-deprecate@1.0.2, xmlchars@2.2.0, yaml@1.10.3
105
TanStack Table@tanstack/react-table@9.3.19.9 kB–4
list@tanstack/react-store@0.11.2, @tanstack/store@0.11.2, @tanstack/table-core@9.3.1, use-sync-external-store@1.7.0
1
TanStack Table + TanStack Virtual@tanstack/react-table@9.3.1 + @tanstack/react-virtual@3.14.2620.2 kB–5
list@tanstack/react-store@0.11.2, @tanstack/store@0.11.2, @tanstack/table-core@9.3.1, @tanstack/virtual-core@3.19.11, use-sync-external-store@1.7.0
1
Handsontable@handsontable/react-wrapper@18.1.2 + handsontable@18.1.2355 kB22.8 kB00
DevExtreme React DataGriddevextreme-react@26.1.6 + devextreme@26.1.6693 kB94.4 kB42
list@babel/runtime@7.29.13, @devexpress/utils@2.1.4, @preact/signals-core@1.14.5, core-js@3.51.0, core-util-is@1.0.3, csstype@3.2.3, devexpress-diagram@2.2.31, devexpress-gantt@4.1.71, devextreme-quill@1.7.10, es6-object-assign@1.1.0, eventemitter3@4.0.7, fast-diff@1.3.0, immediate@3.0.6, inferno-create-element@8.2.3, inferno-vnode-flags@8.2.3, inferno@8.2.3, inherits@2.0.4, isarray@1.0.0, js-tokens@4.0.0, jszip@3.10.2, lie@3.3.0, lodash.clonedeep@4.5.0, lodash.isequal@4.5.0, lodash.merge@4.6.2, loose-envify@1.4.0, object-assign@4.1.1, opencollective-postinstall@2.0.3, pako@1.0.11, parchment@2.0.1, process-nextick-args@2.0.1, prop-types@15.8.1, quill-delta@5.1.0, react-is@16.13.1, readable-stream@2.3.8, rrule@2.8.1, safe-buffer@5.1.2, setimmediate@1.0.5, string_decoder@1.1.1, tslib@2.3.1, tslib@2.9.1, util-deprecate@1.0.2, zod@4.6.7
41
Syncfusion React Grid@syncfusion/ej2-react-grids@35.1.42275 kB224 kB20
list@syncfusion/ej2-base@35.1.37, @syncfusion/ej2-buttons@35.1.41, @syncfusion/ej2-calendars@35.1.43, @syncfusion/ej2-compression@35.1.37, @syncfusion/ej2-data@35.1.37, @syncfusion/ej2-dropdowns@35.1.43, @syncfusion/ej2-excel-export@35.1.37, @syncfusion/ej2-file-utils@35.1.37, @syncfusion/ej2-grids@35.1.42, @syncfusion/ej2-icons@35.1.37, @syncfusion/ej2-inputs@35.1.43, @syncfusion/ej2-lists@35.1.43, @syncfusion/ej2-material-theme@35.1.43, @syncfusion/ej2-navigations@35.1.43, @syncfusion/ej2-notifications@35.1.37, @syncfusion/ej2-pdf-export@35.1.43, @syncfusion/ej2-popups@35.1.42, @syncfusion/ej2-querybuilder@35.1.42, @syncfusion/ej2-react-base@35.1.37, @syncfusion/ej2-splitbuttons@35.1.37
0
KendoReact Grid@progress/kendo-react-grid@17.0.0242 kB105 kB90
list@babel/runtime@7.29.13, @isaacs/nonrecursive-glob-match@1.1.0, @progress/kendo-common@1.1.5, @progress/kendo-csv@1.0.0, @progress/kendo-data-query@1.7.4, @progress/kendo-date-math@1.5.20, @progress/kendo-dateinputs-common@0.4.13, @progress/kendo-draggable-common@0.2.3, @progress/kendo-drawing@1.25.7, @progress/kendo-file-saver@1.1.3, @progress/kendo-inputs-common@3.1.4, @progress/kendo-intl@3.2.1, @progress/kendo-licensing@1.13.0, @progress/kendo-popup-common@1.9.5, @progress/kendo-react-animation@17.0.0, @progress/kendo-react-buttons@17.0.0, @progress/kendo-react-common@17.0.0, @progress/kendo-react-conversational-ui@17.0.0, @progress/kendo-react-data-tools@17.0.0, @progress/kendo-react-dateinputs@17.0.0, @progress/kendo-react-dialogs@17.0.0, @progress/kendo-react-dropdowns@17.0.0, @progress/kendo-react-form@17.0.0, @progress/kendo-react-indicators@17.0.0, @progress/kendo-react-inputs@17.0.0, @progress/kendo-react-intl@17.0.0, @progress/kendo-react-labels@17.0.0, @progress/kendo-react-layout@17.0.0, @progress/kendo-react-notification@17.0.0, @progress/kendo-react-popup@17.0.0, @progress/kendo-react-progressbars@17.0.0, @progress/kendo-react-tooltip@17.0.0, @progress/kendo-react-treeview@17.0.0, @progress/kendo-react-upload@17.0.0, @progress/kendo-smartpaste-common@1.0.0, @progress/kendo-svg-icons@5.5.0, @progress/kendo-theme-core@14.10.0, @progress/kendo-theme-default@14.10.0, @progress/kendo-theme-utils@14.10.0, @progress/kendo-webspeech-common@1.0.1, @progress/pako-esm@1.0.2, ansi-regex@5.0.1, ansi-styles@4.3.0, balanced-match@4.0.4, brace-expansion@5.0.13, buffer-equal-constant-time@1.0.1, cliui@8.0.1, color-convert@2.0.1, color-name@1.1.4, csstype@3.2.3, dom-helpers@5.2.1, ecdsa-sig-formatter@1.0.11, emoji-regex@8.0.0, escalade@3.2.0, get-caller-file@2.0.5, glob@14.0.4, is-fullwidth-code-point@3.0.0, js-tokens@4.0.0, jsonwebtoken@9.0.3, jwa@2.0.1, jws@4.0.1, lodash.includes@4.3.0, lodash.isboolean@3.0.3, lodash.isinteger@4.0.4, lodash.isnumber@3.0.3, lodash.isplainobject@4.0.6, lodash.isstring@4.0.1, lodash.once@4.1.1, loose-envify@1.4.0, lru-cache@11.5.3, minimatch@11.0.8, minipass@7.1.3, ms@2.1.3, object-assign@4.1.1, path-scurry@3.0.0, prop-types@15.8.1, react-is@16.13.1, react-transition-group@4.4.5, require-directory@2.1.1, safe-buffer@5.2.1, semver@7.8.6, string-width@4.2.3, strip-ansi@6.0.1, tslib@1.14.1, tslib@2.8.1, tslib@2.9.1, wrap-ansi@7.0.0, y18n@5.0.8, yargs-parser@21.1.1, yargs@17.7.3
51
Glide Data Grid@glideapps/glide-data-grid@6.0.3108 kB2.3 kB81
list@babel/code-frame@7.29.7, @babel/compat-data@7.29.7, @babel/core@7.29.13, @babel/generator@7.29.13, @babel/helper-compilation-targets@7.29.13, @babel/helper-globals@7.29.7, @babel/helper-module-imports@7.29.7, @babel/helper-module-transforms@7.29.13, @babel/helper-plugin-utils@7.29.7, @babel/helper-string-parser@7.29.13, @babel/helper-validator-identifier@7.29.7, @babel/helper-validator-option@7.29.7, @babel/helpers@7.29.13, @babel/parser@7.29.13, @babel/plugin-proposal-export-namespace-from@7.18.9, @babel/plugin-syntax-dynamic-import@7.8.3, @babel/plugin-syntax-export-namespace-from@7.8.3, @babel/plugin-transform-modules-commonjs@7.29.7, @babel/template@7.29.7, @babel/traverse@7.29.13, @babel/types@7.29.11, @emotion/is-prop-valid@1.4.0, @emotion/memoize@0.9.0, @jridgewell/gen-mapping@0.3.13, @jridgewell/remapping@2.3.5, @jridgewell/resolve-uri@3.1.2, @jridgewell/sourcemap-codec@1.6.0, @jridgewell/trace-mapping@0.3.31, @linaria/core@4.5.4, @linaria/logger@4.5.0, @linaria/react@4.5.4, @linaria/tags@4.5.4, @linaria/utils@4.5.3, babel-merge@3.0.0, balanced-match@1.0.2, baseline-browser-mapping@2.11.35, brace-expansion@2.1.8, browserslist@4.29.5, caniuse-lite@1.0.30001826, canvas-hypertxt@1.0.3, classnames@2.5.1, convert-source-map@2.0.0, debug@4.4.3, deepmerge@2.2.1, electron-to-chromium@1.5.481, escalade@3.2.0, find-up@5.0.0, gensync@1.0.0-beta.2, html-element-attributes@1.3.1, is-extendable@1.0.1, is-plain-object@2.0.4, isobject@3.0.1, js-tokens@4.0.0, jsesc@3.1.0, json5@2.2.3, locate-path@6.0.0, lodash@4.18.1, loose-envify@1.4.0, lru-cache@5.1.1, marked@4.3.0, minimatch@9.0.9, ms@2.1.3, node-releases@2.0.63, object-assign@4.1.1, object.omit@3.0.0, p-limit@3.1.0, p-locate@5.0.0, path-exists@4.0.0, picocolors@1.1.1, prop-types@15.8.1, react-easy-swipe@0.0.21, react-html-attributes@1.4.6, react-is@16.13.1, react-number-format@5.4.5, react-responsive-carousel@3.2.23, semver@6.3.2, ts-invariant@0.10.3, tslib@2.9.1, update-browserslist-db@1.3.4, yallist@3.1.1, yocto-queue@0.1.0
81
react-data-gridreact-data-grid@7.0.0-beta.6423.9 kB2.2 kB00
Material React Tablematerial-react-table@3.2.1242 kB–94
list@babel/code-frame@7.29.7, @babel/generator@7.29.13, @babel/helper-globals@7.29.7, @babel/helper-module-imports@7.29.7, @babel/helper-string-parser@7.29.13, @babel/helper-validator-identifier@7.29.7, @babel/parser@7.29.13, @babel/runtime@7.29.13, @babel/template@7.29.7, @babel/traverse@7.29.13, @babel/types@7.29.11, @base-ui/utils@0.5.0, @emotion/babel-plugin@11.13.5, @emotion/cache@11.14.0, @emotion/hash@0.9.2, @emotion/is-prop-valid@1.4.0, @emotion/memoize@0.9.0, @emotion/react@11.14.0, @emotion/serialize@1.3.3, @emotion/sheet@1.4.0, @emotion/styled@11.14.1, @emotion/unitless@0.10.0, @emotion/use-insertion-effect-with-fallbacks@1.2.0, @emotion/utils@1.4.2, @emotion/weak-memoize@0.4.0, @floating-ui/utils@0.2.12, @jridgewell/gen-mapping@0.3.13, @jridgewell/resolve-uri@3.1.2, @jridgewell/sourcemap-codec@1.6.0, @jridgewell/trace-mapping@0.3.31, @mui/core-downloads-tracker@9.5.0, @mui/icons-material@9.5.0, @mui/material@9.5.0, @mui/private-theming@9.5.0, @mui/styled-engine@9.5.0, @mui/system@9.5.0, @mui/types@9.5.0, @mui/utils@9.5.0, @mui/x-date-pickers@9.17.0, @mui/x-internals@9.17.0, @popperjs/core@2.11.8, @tanstack/match-sorter-utils@8.19.4, @tanstack/react-table@8.20.6, @tanstack/react-virtual@3.11.2, @tanstack/table-core@8.20.5, @tanstack/virtual-core@3.11.2, @types/parse-json@4.0.2, @types/prop-types@15.7.15, @types/react-transition-group@4.4.12, @types/react@19.3.0, babel-plugin-macros@3.1.0, callsites@3.1.0, clsx@2.1.1, convert-source-map@1.9.0, cosmiconfig@7.1.0, csstype@3.2.3, debug@4.4.3, dom-helpers@5.2.1, error-ex@1.3.4, es-errors@1.3.0, escape-string-regexp@4.0.0, find-root@1.1.0, function-bind@1.1.2, hasown@2.0.4, highlight-words@2.0.0, hoist-non-react-statics@3.3.2, import-fresh@3.3.1, is-arrayish@0.2.1, is-core-module@2.18.0, js-tokens@4.0.0, jsesc@3.1.0, json-parse-even-better-errors@2.3.1, lines-and-columns@1.2.4, loose-envify@1.4.0, ms@2.1.3, object-assign@4.1.1, parent-module@1.0.1, parse-json@5.2.0, path-parse@1.0.7, path-type@4.0.0, picocolors@1.1.1, prop-types@15.8.1, react-is@16.13.1, react-is@19.3.1, react-transition-group@4.4.5, remove-accents@0.5.0, reselect@5.3.0, resolve-from@4.0.0, resolve@1.22.14, source-map@0.5.7, stylis@4.2.0, supports-preserve-symlinks-flag@1.0.0, use-sync-external-store@1.7.0, yaml@1.10.3
94
Mantine React Tablemantine-react-table@1.3.4165 kB–106
list@babel/code-frame@7.29.7, @babel/generator@7.29.13, @babel/helper-globals@7.29.7, @babel/helper-module-imports@7.29.7, @babel/helper-string-parser@7.29.13, @babel/helper-validator-identifier@7.29.7, @babel/parser@7.29.13, @babel/runtime@7.29.13, @babel/template@7.29.7, @babel/traverse@7.29.13, @babel/types@7.29.11, @emotion/babel-plugin@11.13.5, @emotion/cache@11.14.0, @emotion/hash@0.9.2, @emotion/memoize@0.9.0, @emotion/react@11.14.0, @emotion/serialize@1.3.3, @emotion/sheet@1.4.0, @emotion/unitless@0.10.0, @emotion/use-insertion-effect-with-fallbacks@1.2.0, @emotion/utils@1.4.2, @emotion/weak-memoize@0.4.0, @floating-ui/core@1.8.0, @floating-ui/dom@1.8.0, @floating-ui/react-dom@1.3.0, @floating-ui/react@0.19.2, @floating-ui/utils@0.2.12, @jridgewell/gen-mapping@0.3.13, @jridgewell/resolve-uri@3.1.2, @jridgewell/sourcemap-codec@1.6.0, @jridgewell/trace-mapping@0.3.31, @mantine/core@6.0.22, @mantine/dates@6.0.22, @mantine/hooks@6.0.22, @mantine/styles@6.0.22, @mantine/utils@6.0.22, @radix-ui/number@1.0.0, @radix-ui/primitive@1.0.0, @radix-ui/react-compose-refs@1.0.0, @radix-ui/react-context@1.0.0, @radix-ui/react-direction@1.0.0, @radix-ui/react-presence@1.0.0, @radix-ui/react-primitive@1.0.1, @radix-ui/react-scroll-area@1.0.2, @radix-ui/react-slot@1.0.1, @radix-ui/react-use-callback-ref@1.0.0, @radix-ui/react-use-layout-effect@1.0.0, @tabler/icons-react@3.51.0, @tabler/icons@3.51.0, @tanstack/match-sorter-utils@8.8.4, @tanstack/react-table@8.10.6, @tanstack/react-virtual@3.0.0-beta.63, @tanstack/table-core@8.10.6, @tanstack/virtual-core@3.0.0-beta.63, @types/parse-json@4.0.2, aria-hidden@1.2.6, babel-plugin-macros@3.1.0, callsites@3.1.0, clsx@1.1.1, convert-source-map@1.9.0, cosmiconfig@7.1.0, csstype@3.0.9, csstype@3.2.3, dayjs@1.11.23, debug@4.4.3, detect-node-es@1.1.0, error-ex@1.3.4, es-errors@1.3.0, escape-string-regexp@4.0.0, find-root@1.1.0, function-bind@1.1.2, get-nonce@1.0.1, hasown@2.0.4, hoist-non-react-statics@3.3.2, import-fresh@3.3.1, is-arrayish@0.2.1, is-core-module@2.18.0, js-tokens@4.0.0, jsesc@3.1.0, json-parse-even-better-errors@2.3.1, lines-and-columns@1.2.4, ms@2.1.3, parent-module@1.0.1, parse-json@5.2.0, path-parse@1.0.7, path-type@4.0.0, picocolors@1.1.1, react-is@16.13.1, react-remove-scroll-bar@2.3.8, react-remove-scroll@2.7.2, react-style-singleton@2.2.3, react-textarea-autosize@8.3.4, remove-accents@0.4.2, resolve-from@4.0.0, resolve@1.22.14, source-map@0.5.7, stylis@4.2.0, supports-preserve-symlinks-flag@1.0.0, tabbable@6.5.1, tslib@2.9.1, use-callback-ref@1.3.3, use-composed-ref@1.4.0, use-isomorphic-layout-effect@1.2.1, use-latest@1.3.0, use-sidecar@1.1.3, yaml@1.10.3
106
RevoGrid (MIT core)@revolist/react-datagrid@4.31.4111 kB–1
list@revolist/revogrid@4.31.4
0
Wijmo FlexGrid@mescius/wijmo.react.grid@5.20262.60212 kB18.4 kB7
list@mescius/wijmo.grid.detail@5.20262.60, @mescius/wijmo.grid@5.20262.60, @mescius/wijmo.input@5.20262.60, @mescius/wijmo.interop.grid@5.20262.60, @mescius/wijmo.react.base@5.20262.60, @mescius/wijmo.styles@5.20262.60, @mescius/wijmo@5.20262.60
0

Measured on November 11, 2026 with the latest versions on npm. Runtime dependencies: every package that npm install adds besides the grid's own packages and the framework, including required peer dependencies. JS / CSS: esbuild 0.25.10 bundle of the minimal getting-started usage, minified, React or Vue left out, gzip level 9 (kB = 1,000 bytes). Fonts and images are not counted. Numbers include required peers such as a design system, so they are lower if your app already ships those. The measurement script is open source: run it to reproduce or update these numbers.

Performance

We benchmarked Infinite Table and AG Grid Community with 300,000 and 1,000,000 rows: mount time, memory, sorting and scrolling, in a reproducible setup you can run on your own machine.

How we keep this fair

Honest about our gaps

Infinite Table doesn't have integrated charts, Excel or CSV export, clipboard support, row drag and drop, a pager, right-to-left layouts or documented screen reader support. The tables say so, and every comparison page says when the other grid is the better choice.

One source of truth

Every table on these pages is built from one data file, also published as /compare/matrix.json. Bundle sizes and dependency counts come from a script anyone can run.

Sources and corrections

Every statement about another product links to the vendor's own documentation, pricing or license page. Infinite Table facts were last verified on November 11, 2026. AG Grid facts were last verified on November 11, 2026. MUI X Data Grid facts were last verified on November 11, 2026. TanStack Table facts were last verified on November 11, 2026. Handsontable facts were last verified on November 11, 2026. DevExtreme DataGrid facts were last verified on November 11, 2026. Syncfusion React Grid facts were last verified on November 11, 2026. KendoReact Grid facts were last verified on November 11, 2026. Glide Data Grid facts were last verified on November 11, 2026. react-data-grid facts were last verified on November 11, 2026. Material React Table facts were last verified on November 11, 2026. Mantine React Table facts were last verified on November 11, 2026. RevoGrid facts were last verified on November 11, 2026. Wijmo FlexGrid facts were last verified on November 11, 2026. Prices are list prices as published; taxes, discounts and quotes can differ. Products change quickly, so please check the vendor's site before you buy.

Spotted something wrong or out of date? We'll fix it: open a correction issue, edit the data on GitHub or email us.