Roact is great for managing a hierarchy of instances as a function of some underlying state, but when handling tens of thousands of instances, the memory usage becomes a problem.
Feather lets you manage instances with the same component + props
logic as Roact, using the absolute bare minimum amount of memory usage in the virtual tree, while still being performant.
The key is to not store any host props in the virtual tree, and rely just on the props in function components, which typically have a smaller memory footprint.
The tradeoff is that we can no longer detect which props need to be updated in host components, so they must all be updated. Performance is restored by giving function components their old props table, so they can determine which children/props must be updated.
Installation
Download the Latest Release and drag it into Roblox Studio.
or use wally
# In wally.toml
[dependencies]
Feather = "blinkybool/feather@0.1.0"