https://github.com/habedi/spart
A collection of space partitioning trees for Rust 🦀
https://github.com/habedi/spart
bsp-tree indexing kd-tree knn-search octree quadtree range-search rtree rust-lang rust-library space-partition-tree
Last synced: 6 months ago
JSON representation
A collection of space partitioning trees for Rust 🦀
- Host: GitHub
- URL: https://github.com/habedi/spart
- Owner: habedi
- License: apache-2.0
- Created: 2025-02-02T18:17:52.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-03-15T09:05:25.000Z (7 months ago)
- Last Synced: 2025-03-15T09:29:22.565Z (7 months ago)
- Topics: bsp-tree, indexing, kd-tree, knn-search, octree, quadtree, range-search, rtree, rust-lang, rust-library, space-partition-tree
- Language: Rust
- Homepage:
- Size: 51.8 KB
- Stars: 12
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE-APACHE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
## Spart
[
](https://github.com/habedi/spart/actions/workflows/tests.yml)
[](https://github.com/habedi/spart/actions/workflows/lints.yml)
[](https://codecov.io/gh/habedi/spart)
[](https://www.codefactor.io/repository/github/habedi/spart)
[](https://crates.io/crates/spart)
[](https://docs.rs/spart)
[](https://crates.io/crates/spart)
[](https://github.com/rust-lang/rust/releases/tag/1.83.0)
[](https://deps.rs/repo/github/habedi/spart)
[](docs)
[](https://github.com/habedi/spart)
Spart (**s**[pace] **par**[titioning] **t**[rees] is a Rust library that provides implementations of various
space partitioning tree data structures for efficient indexing and searching 2D and 3D point data.Currently, the following trees are implemented:
| Index | Tree Type | 2D | 3D | kNN Search | Range Search |
|-------|----------------------------------------------------|----|----|------------|--------------|
| 1 | [Quadtree](https://en.wikipedia.org/wiki/Quadtree) | ✓ | | ✓ | ✓ |
| 2 | [Octree](https://en.wikipedia.org/wiki/Octree) | | ✓ | ✓ | ✓ |
| 3 | [Kd-tree](https://en.wikipedia.org/wiki/K-d_tree) | ✓ | ✓ | ✓ | ✓ |
| 4 | [R-tree](https://en.wikipedia.org/wiki/R-tree) | ✓ | ✓ | ✓ | ✓ |
| 5 | [BSP-tree](https://en.wikipedia.org/wiki/BSP-tree) | ✓ | ✓ | ✓ | ✓ |### Installation
```bash
cargo add spart
```*Spart requires Rust 1.83.0 or later.*
### Documentation
The documentation for the latest release can be found [here](docs).
Additionally, check out the [tests](tests/) directory for detailed examples for how to use the library.
### Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to make a contribution.
### License
Spart is available under the terms of either of the following licenses:
* MIT License ([LICENSE-MIT](LICENSE-MIT))
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))