nabo is a fast K Nearest Neighbour (KNN) library for low-dimensional spaces. It is a re-implementation in pure Rust of the C++ library of the same name by its original author. This work has been sponsored by Enlightware GmbH.
nabo is no_std compatible.
To use nabo in your project, you need to either:
- Use 
nabo::simple_point::SimplePointas your point type. - Implement the 
nabo::Pointtrait for your own point type. 
If you want to avoid a dependency to rand, disable the rand feature.
In that case, the random generation of point clouds for SimplePoint will not be available.
You can benchmark nabo using the following command:
cargo bench
If you use nabo in the academic context, please cite this paper that evaluates its performances in the context of robotics mapping research:
@article{elsebergcomparison,
	title={Comparison of nearest-neighbor-search strategies and implementations for efficient shape registration},
	author={Elseberg, J. and Magnenat, S. and Siegwart, R. and N{\"u}chter, A.},
	journal={Journal of Software Engineering for Robotics (JOSER)},
	pages={2--12},
	volume={3},
	number={1},
	year={2012},
	issn={2035-3928}
}
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
 - MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
 
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.