2 unstable releases
0.6.0 | Oct 16, 2024 |
---|---|
0.5.0 | Aug 30, 2024 |
#1001 in Data structures
187 downloads per month
400KB
6K
SLoC
Honeycomb
Honeycomb aims to provide a safe, efficient and scalable implementation of combinatorial maps for meshing applications. More specifically, the goal is to converge towards a (or multiple) structure(s) adapted to algorithms exploiting GPUs and many-core architectures.
The current objective is to profile and benchmark performance of our structure in the context of our kernels' implementations, and start introducing concurrency into our code.
Quickstart
You can add honeycomb
as a dependency of your project by adding the following lines to its Cargo.toml
:
# [dependencies]
honeycomb = { git = "https://github.com/LIHPC-Computational-Geometry/honeycomb", tag = "0.6.0"} # remove tag for master branch build
Alternatively, you can add the sub-crates that are currently published on crates.io:
# [dependencies]
honeycomb-core = "0.6.0"
honeycomb-kernels = "0.6.0"
honeycomb-render = "0.6.0"
Project content
Rust
The content of each member is described in their respective Rust Doc as well as in the user guide. The following crates are published:
The repository also hosts these members:
- Benchmarks are grouped in the honeycomb-benches crate (Rust Doc)
- Examples are grouped in the honeycomb-examples crate (Rust Doc)
User guide
The user guide provides an overview of everything available in the project as well as usage instructions. It can be generated offline using mdbook. Note that generating the doc using a stable toolchain is possible, the features just won't be documented as clearly.
# Serve the doc on a local server
mdbook serve --open -d ../target/doc/ user-guide/ &
cargo +nightly doc --all --all-features --no-deps
# Kill the local server
kill $(pidof mdbook)
# Without pidof
kill $(ps -e | awk '/mdbook/ {print $1}')
Contributing
Contributions are welcome and accepted as pull requests on GitHub. Feel free to use issues to report bugs, missing documentation or suggest improvements of the project.
Note that a most of the code possess documentation, including private modules / items / sections. You can generate
the complete documentation by using the instructions above and passing the option
--document-private-items
to cargo doc
.
License
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 preference.
The SPDX license identifier for this project is MIT OR Apache-2.0
.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~2–3MB
~54K SLoC