PackageTrack
Sign in Get early access

supercluster

A port of MapBox's javascript supercluster library for fast clustering, with added mutable clustering support.

3.2.0 13K downloads/mo #2596 most downloaded on pub.dev rorystephenson/supercluster_dart

What this package is like to depend on

Last release 12 months ago

28 Aug 2025

Release timing varies

gaps range from 8 days to 1.2 years

Nearly every release is documented

notes for 15 of 15 stable releases

Nothing withdrawn

no release was ever pulled

4 years old

17 releases · first in 2022

0 releases in the last 12 months

see the full history below

Release timeline

17 releases · Jun 2022 to Aug 2025
2023 2024 2025 2026
Release Pre-release

Releases

latest 17
  1. 3.2.0 28 Aug 2025
    Release notes
    • CHORE: Bump dependencies (thanks @l1qu1d)
    Open source →
  2. 3.1.0 04 Jul 2024
    Release notes
    • CHORE: Bump dependencies.
    Open source →
  3. 3.0.1 13 Jul 2023
    Release notes
    • CHORE: Bump dependencies.
    Open source →
  4. 3.0.0 06 Jul 2023
    Release notes
    • BREAKING: SuperclusterMutable.insert() has changed behaviour and name. It is now add() in following with dart collection conventions. The implementation has changed to ensure that clusters are appropriately formed, previously after many insertions now enough clusters were being formed. There is a performance cost but if you need to add many points you can use the new addAll() method which is fast for multiple points.
    • BREAKING: The remove() method has also changed implementation to ensure that clusters are reformed correctly, previously not enough clusters were being reformed after certain removals.
    • FEATURE: Added addAll() method for efficiently adding many points.
    • FEATURE: Added removeAll() method for efficiently removing many points.
    • FEATURE: Added containsElement() method for SuperclusterImmutable.
    Open source →
  5. 3.0.0-dev.2 05 Jul 2023 pre-release

    Nothing published for this version

  6. 3.0.0-dev.1 04 Jul 2023 pre-release

    Nothing published for this version

  7. 2.4.0 28 May 2023
    Release notes

    Requires dart 3.

    Open source →
  8. 2.3.0 28 May 2023
    Release notes
    • FEATURE: The following methods are now available for both SuperclusterImmutable and SuperclusterMutable:
      • parentOf
      • childrenOf
      • layerPointOf
    • BREAKING: Supercluster.contains has been renamed to Supercluster.containsPoint
    • BREAKING: SuperclusterImmutable.childrenOf has been renamed to SuperclusterImmutable.childrenOfById.
    • BREAKING: MutableLayerPoint's weighted x/y (wX/wY) have been removed. They are equivalent x/y.
    • BREAKING: MutableLayerCluster's x/y is now originX/originY and the wX/wY is now x/y. This brings MutableLayerCluster in line with ImmutableLayerCluster and means that the x/y of a LayerElement is always the coordinate with which it is stored in the index.
    Open source →
  9. 2.2.0 21 May 2023
    Release notes
    • FEATURE: Add replacePoints method which allows the index's points to be replaced with the original ones when a supercluster index is created in a separate isolate.
    • BUGFIX: Fix highestZoom/lowestZoom values when inserting in a mutable supercluster causes a new cluster to form.
    Open source →
  10. 2.1.1 29 Sep 2022
    Release notes
    • BUGFIX: SuperclusterMutable now removes existing points when calling load(). This was the documented behaviour but there was a bug in the implementation. Thanks @Robbendebiene for pointing this out.
    Open source →
  11. 2.1.0 27 Sep 2022
    Release notes
    • Add new contains function which returns true if the provided point is contained in the index.
    Open source →
  12. 2.0.0 27 Sep 2022
    Release notes
    • BREAKING: SuperclusterImmutable no longer has a points argument. Instead the points should be set by calling load() as is done with SuperclusterMutable.
    • BREAKING: onClusterDataChange callback has been removed. If you want to react to cluster data changes you can do so after:
      • load is called. - remove is called and returns true. - modifyPointData is called and returns true.
    Open source →
  13. 1.0.0 19 Sep 2022
    Release notes
    • BREAKING: ClusterOrMapPoint has been renamed to LayerElement
    • BREAKING: Cluster has been renamed to LayerCluster
    • BREAKING: MapPoint has been renamed to LayerPoint
    • BREAKING: Supercluster now no longer supports points with a null x or y. The getX and getY functions are now non-nullable. If you have points with null x/y you should filter them out.
    • Introduced SuperclusterMutable which allows adding/removing points. This uses a rbush instead of kdbush as the point index which is slower but supports mutation. If you don't need mutation you should stick with the normal Supercluster.
    Open source →
  14. 0.1.0 08 Jun 2022
    Release notes
    • Add the ability to aggregate map point data in clusters.
    Open source →
  15. 0.0.2 05 Jun 2022
    Release notes
    • Export Cluster, MapPoint and ClusterOrMapPoint
    Open source →
  16. 0.0.1 05 Jun 2022
    Release notes
    • Initial version.
    Open source →
  17. 0.0.1+1 05 Jun 2022
    Release notes
    • Fix code example in README
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive