sector 0.4.0+2 copy "sector: ^0.4.0+2" to clipboard
sector: ^0.4.0+2 copied to clipboard

Fast and intuitive 2D data structures: grids, graphs, pathfinding & more.

sector #

Fast and intuitive 2D data structures: grids, graphs, pathfinding & more.

✅ Health 🚀 Release 📝 Docs ♻️ Maintenance
Build status for package/sector Pub version for package/sector Dart documentation for package/sector GitHub Issues for package/sector

Preview of the Demo App

Getting Started #

Add a dependency in your pubspec.yaml or run the following command:

dart pub add sector
copied to clipboard

Features #

  • Platform independent, works on the Web, Flutter, and Dart VM.
  • Idiomatically Dart, with a familiar and fully documented API.
  • Extensible, with a focus on performance and ergonomics.
  • Well-tested, with 100% code coverage and property-based tests.
  • Lightweight, with zero dependencies, minimal overhead, and benchmarked.

Usage #

Sector offers a powerful toolkit for graphs, grids, pathfinding, and more.

Graphs #

Create a graph and add edges:

final graph = Graph<String>();

graph.addEdge(Edge('a', 'b'));
graph.addEdge(Edge('b', 'c'));

print(graph.roots); // ['a']
print(graph.successors('b')); // ['c']
copied to clipboard

Grids #

Create a grid and update cells:

enum Tile {
  wall,
  floor,
}

// Create a 5x8 grid filled with `Tile.wall`.
//
// When resizing a grid, the `empty` value is used to fill the new cells.
final grid = Grid.filled(5, 8, empty: Tile.wall);

// Itereate over the grid.
for (final row in grid.rows) {
  for (final cell in row) {
    print(cell);
  }
}
copied to clipboard

Pathfinding #

Use built-in pathfinding algorithms or write your own:

final graph = Walkable.linear(['a', 'b', 'c']);

final path = breadthFirstSearch(graph, 'a', Goal.node('c'));
print(path); // Path(['a', 'b', 'c'])
copied to clipboard

Contributing #

We welcome contributions to this package!

Please file an issue before contributing larger changes.

This package uses repository specific tooling to enforce formatting, static analysis, and testing. Please run the following commands locally before submitting a pull request:

  • ./dev.sh --packages packages/sector check
  • ./dev.sh --packages packages/sector test
13
likes
160
points
21
downloads

Publisher

verified publisherlurey.dev

Weekly Downloads

2024.09.25 - 2025.04.09

Fast and intuitive 2D data structures: grids, graphs, pathfinding & more.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

lodim, meta

More

Packages that depend on sector