<!-- Source: https://virtuallist.svelte.page/compare/svelte-virtual -->
<!-- Canonical: https://virtuallist.svelte.page/compare/svelte-virtual -->
# Svelte Virtual List vs svelte-virtual

svelte-virtual renders fixed-size lists and grids. Svelte Virtual List measures rows automatically and supports Svelte 5 in its stable release.

## Overview

svelte-virtual provides List and Grid components that render only the visible rows, from an itemCount and a fixed itemSize. Its stable 0.6 release (February 2024) supports Svelte 3 and 4; Svelte 5 support is in the 1.0.0-next prerelease, last published in November 2024. @humanspeak/svelte-virtual-list is a stable Svelte 5 component that measures each row as it renders, loads more data near the end of the list, and scrolls to any index or offset.

- **Svelte Virtual List site:** https://virtuallist.svelte.page
- **Svelte Virtual List npm:** https://www.npmjs.com/package/%40humanspeak%2Fsvelte-virtual-list
- **Svelte Virtual List slug:** svelte-virtual-list
- **Category:** Svelte List and Grid Virtualizer
- **Approach:** Fixed-size List and Grid components driven by itemCount
- **Website:** https://www.npmjs.com/package/svelte-virtual
- **GitHub:** https://github.com/ghostebony/svelte-virtual
- **npm:** https://www.npmjs.com/package/svelte-virtual

## Feature comparison

| Feature | @humanspeak/svelte-virtual-list | svelte-virtual | Notes |
| --- | --- | --- | --- |
| Svelte 5 support | Stable release | Prerelease (1.0.0-next) |  |
| Dynamic measured heights | Yes | Fixed itemSize |  |
| Grid virtualization | No | Yes |  |
| Horizontal lists | LTR, runtime switchable | Yes |  |
| Sticky rows | No | Yes |  |
| Infinite scroll helpers | Yes | User-land pattern |  |
| Programmatic scroll to index | Yes | Yes |  |
| Runtime dependencies | 0 | 0 |  |

## Svelte Virtual List strengths

- Svelte 5-native component API with snippets and TypeScript generics
- Dynamic height measurement without requiring a size map up front
- Built-in infinite loading hooks for feed and pagination workflows
- Imperative scroll method with index and alignment control
- Vertical and horizontal layouts, including reactive orientation switching
- SSR-friendly package for SvelteKit apps
- Zero runtime dependencies and MIT licensed
- Rows of different heights need no size data up front
- Svelte 5 support in a stable, maintained release

## svelte-virtual strengths

- List and Grid components in one package
- Sticky indices for pinned rows
- Simple itemCount and itemSize API for uniform rows
- Scroll-to-index and scroll-to-position methods

## Svelte Virtual List limitations

- Focused on one-dimensional lists, not grids or masonry layouts
- Horizontal mode is LTR-only in the current release
- Requires Svelte 5
- Newer package with a smaller ecosystem than older virtualizer projects

## svelte-virtual limitations

- Svelte 5 support is only in a prerelease, last published November 2024
- Every row shares one fixed size; there is no automatic height measurement
- Infinite loading is wired in application code

## Verdict

Choose svelte-virtual when every row has the same fixed size, or when you need a virtual grid or sticky rows. Choose @humanspeak/svelte-virtual-list for Svelte 5 lists whose rows vary in height, with infinite loading and scroll methods in a stable release.

## Keywords

svelte-virtual alternative, svelte-virtual npm, svelte-virtual vs svelte virtual list
