# Extension points — TanStack/table

> Canonical page: https://codevetter.com/unpack/table/extension-points

# Extension points — TanStack/table

Scanned commit 23f21c194e6eba2e7f0321e817104d6e118d6141 (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Customization is explicit and predominantly configured per table. The features object combines runtime modules, row-model factories, function registries, and type-only metadata while retaining their distinct roles. Framework adapters provide a reactivity contract, and React's hook factory binds application components and contexts. Worker processing and devtools expose additional public integration seams.
- tableFeatures is a runtime identity helper with compile-time ValidateFeatureSlots constraints. FeatureSlotPrereqs validates pairings such as resizing/sizing, global/column filtering, and sorting factories/rowSortingFeature. — [packages/table-core/src/helpers/tableFeatures.ts#L46-L50](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/helpers/tableFeatures.ts#L46-L50) [packages/table-core/src/types/TableFeatures.ts#L94-L173](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/types/TableFeatures.ts#L94-L173)
- Custom modules can declaration-merge Plugins and feature-map interfaces; the worker plugin demonstrates registering both workerRowModelsFeature and its state slice without application-side module declarations. — [packages/table-core/src/types/TableFeatures.ts#L53-L60](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/types/TableFeatures.ts#L53-L60) [packages/table-core/src/worker/createTableWorker.ts#L18-L30](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/worker/createTableWorker.ts#L18-L30)
- Feature hooks separate shared prototype APIs, table APIs, defaults, per-instance initialization, and reset behavior. Runtime construction invokes each feature's table initialization immediately before its API construction in registration order. — [packages/table-core/src/types/TableFeatures.ts#L365-L414](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/types/TableFeatures.ts#L365-L414) [packages/table-core/src/types/TableFeatures.ts#L424-L450](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/types/TableFeatures.ts#L424-L450) [packages/table-core/src/core/table/constructTable.ts#L196-L223](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/core/table/constructTable.ts#L196-L223) [packages/table-core/src/core/table/coreTablesFeature.utils.ts#L115-L118](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/core/table/coreTablesFeature.utils.ts#L115-L118)
- Row-model slots accept factory replacements; core falls back to createCoreRowModel, while optional derived stages fall back to predecessors. createWorkerRowModel occupies those same slots rather than introducing a separate renderer API. — [packages/table-core/src/core/row-models/coreRowModelsFeature.utils.ts#L18-L29](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/core/row-models/coreRowModelsFeature.utils.ts#L18-L29) [packages/table-core/src/core/row-models/coreRowModelsFeature.utils.ts#L150-L164](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/core/row-models/coreRowModelsFeature.utils.ts#L150-L164) [packages/table-core/src/worker/createWorkerRowModel.ts#L18-L32](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/worker/createWorkerRowModel.ts#L18-L32)
- sortFns, filterFns, and aggregationFns are per-table registries whose keys participate in inference. Sorting also accepts comparator functions directly, resolves auto-selected names, and falls back to basic when a named function is unavailable. — [packages/table-core/src/helpers/tableFeatures.ts#L11-L20](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/helpers/tableFeatures.ts#L11-L20) [packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts#L145-L166](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts#L145-L166) [packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts#L215-L239](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts#L215-L239)
- createColumnHelper supports key/function accessors, display columns, nested groups, and tuple-preserving column arrays. metaHelper supplies phantom tableMeta/columnMeta types, which construction removes from the runtime feature list. — [packages/table-core/src/helpers/columnHelper.ts#L80-L121](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/helpers/columnHelper.ts#L80-L121) [packages/table-core/src/helpers/metaHelper.ts#L1-L23](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/helpers/metaHelper.ts#L1-L23) [packages/table-core/src/core/table/constructTable.ts#L42-L59](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/core/table/constructTable.ts#L42-L59)
- TableReactivityBindings is the adapter seam for writable/readonly atoms, subscriptions, batching, untracking, scheduling, options stores, and optional commit/unmount operations; React inserts its binding before constructing the core table. — [packages/table-core/src/core/reactivity/coreReactivityFeature.types.ts#L15-L62](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-core/src/core/reactivity/coreReactivityFeature.types.ts#L15-L62) [packages/react-table/src/useTable.ts#L161-L167](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/react-table/src/useTable.ts#L161-L167)
- createTableHook binds table/cell/header component collections and contexts into useAppTable, while devtools registration managers expose update/dispose and key-based leases for integrating additional adapter lifecycles. — [packages/react-table/src/createTableHook.tsx#L700-L724](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/react-table/src/createTableHook.tsx#L700-L724) [packages/react-table/src/createTableHook.tsx#L937-L999](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/react-table/src/createTableHook.tsx#L937-L999) [packages/table-devtools/src/tableTarget.ts#L49-L55](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-devtools/src/tableTarget.ts#L49-L55) [packages/table-devtools/src/tableTarget.ts#L172-L190](https://github.com/TanStack/table/blob/23f21c194e6eba2e7f0321e817104d6e118d6141/packages/table-devtools/src/tableTarget.ts#L172-L190)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
