adamtheturtle/fastlist
A drop-in, NSTableView-backed replacement for SwiftUI List on macOS.
Installation
.package(url: "https://github.com/adamtheturtle/FastList.git", from: "0.5.0")Add the FastList product to your target dependencies.
Scope
FastList owns native list mechanics: recycled macOS rows, selection, activation, swipe and context-menu rendering, row dragging, paging signals, and scroll-position reporting/restoration. Its native SwiftUI backend supplies the same shared list behavior to supported non-macOS callers.
Calling apps own row layout, domain commands, menu construction, drag payload meaning, pagination state and UI, and persisted scroll state. SwipeAction and MenuItem are small platform-neutral inputs to FastList's native renderers; they are not a shared design system.
When hosted row content depends on caller-owned state that is not represented by the item ids, use rowContentID(_:) with a revision or other inexpensive Hashable token. Changing the token rebuilds recycled macOS rows without turning ordinary selection updates into full reloads.
The FastListDemo executable is the compile-checked usage example:
swift run FastListDemoRequirements
- Swift 5.9+
- macOS 13+ or iOS 17+
License
MIT. See LICENSE.
Package Metadata
Repository: adamtheturtle/fastlist
Default branch: main
README: README.md