{"id":22531387,"url":"https://github.com/adamlm/libwheel","last_synced_at":"2025-07-31T00:41:19.449Z","repository":{"id":228494241,"uuid":"632618617","full_name":"adamlm/libwheel","owner":"adamlm","description":"A collection of C++ libraries","archived":false,"fork":false,"pushed_at":"2024-03-25T00:19:03.000Z","size":382,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T05:19:16.667Z","etag":null,"topics":["cpp","eigen","geometry","libwheel","linear-algebra","motion-planning","strong-types","strong-typing"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adamlm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-04-25T19:32:27.000Z","updated_at":"2024-03-21T12:56:20.000Z","dependencies_parsed_at":"2024-03-24T14:45:03.733Z","dependency_job_id":null,"html_url":"https://github.com/adamlm/libwheel","commit_stats":null,"previous_names":["adamlm/libwheel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/adamlm/libwheel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlm%2Flibwheel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlm%2Flibwheel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlm%2Flibwheel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlm%2Flibwheel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adamlm","download_url":"https://codeload.github.com/adamlm/libwheel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlm%2Flibwheel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267967720,"owners_count":24173566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","eigen","geometry","libwheel","linear-algebra","motion-planning","strong-types","strong-typing"],"created_at":"2024-12-07T08:07:16.596Z","updated_at":"2025-07-31T00:41:19.379Z","avatar_url":"https://github.com/adamlm.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Wheel Library\n\nA play on the phrase, \"Don't reinvent the wheel,\" the Wheel Library (`libwheel`) implements various algorithms and data\nstructures. Some contributions follow existing libraries but with modern designs and techniques. Others are novel and\nbuilt from scratch. The Wheel project's structure roughly resembles the Boost Library's, separating software\ncollections into different libraries.\n\n## Organization\n\nThe library comprises several software components grouped by category, similar to the Boost Library's structure. The\nWheel Library offers the following collections (See each collection's `README.md` file for more information.):\n\n- [`angle`][libwheel_angle]: A type-safe angle abstraction that behaves as a circle group element.\n- [`geometry`][libwheel_geometry]: A collection of geometry concepts.\n- [`metaprogramming`][libwheel_metaprogramming]: A collection of various meta-functions, type traits, and C++ concepts.\n- [`motion_planning`][libwheel_motion_planning]: A collection of sampling-based path and motion planning algorithms.\n- [`strongly_typed_matrix`][libwheel_strongly_typed_matrix]: A compile-time type-safe compile-time wrapper around the\n  Eigen Matrix library for dimensioned linear algebra.\n\n## Building and installing\n\nThe Wheel Library is header only and uses CMake as its build system. It's designed to be integrated into other CMake\nprojects, so you can use `FetchContent` or another mechanism to embed `libwheel` into your project. If you want to\nbuild and install `libwheel` by itself, there are several CMake customization options.\n\n**Note:** The Wheel Library requires C++20 or newer.\n\n### Required tools\n\n- **CMake:** 3.25 or newer\n- **If compiling with Clang:** 16.0.0 or newer\n- **If compiling with GCC:** 11.3.0 or newer\n\n### Build steps\n\nFor building the library with the default options, follow these steps:\n\n1. Configure the CMake project\n\n   ```shell\n   $ cmake -B build .\n   ```\n\n2. Build the library\n\n   ```shell\n   $ cmake --build build\n   ```\n\n3. (Optional) Install the library\n\n   ```shell\n   $ sudo cmake --install build  # Install to /usr/local/\n   ```\n\n   or\n\n   ```shell\n   $ cmake --install build --prefix=\u003cinstall_path\u003e  # Install to custom location\n   ```\n\n### Wheel Library collection options\n\n| CMake option                           | Default Value | Description                                    |\n| -------------------------------------- | ------------- | ---------------------------------------------- |\n| `libwheel_BUILD_ANGLE`                 | `TRUE`        | Build the Wheel Angle Library.                 |\n| `libwheel_BUILD_GEOMETRY`              | `TRUE`        | Build the Wheel Geometry Library.              |\n| `libwheel_BUILD_METAPROGRAMMING`       | `TRUE`        | Build the Wheel Metaprogramming Library.       |\n| `libwheel_BUILD_MOTION_PLANNING`       | `TRUE`        | Build the Wheel Motion Planning Library.       |\n| `libwheel_BUILD_STRONGLY_TYPED_MATRIX` | `TRUE`        | Build the Wheel Strongly-Typed Matrix Library. |\n\n### Wheel Library general options\n\n| CMake option                       | Default Value             | Description                                                                                                                    |\n| ---------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| `libwheel_EXPORT_COMPILE_COMMANDS` | `${PROJECT_IS_TOP_LEVEL}` | Export CMake compile commands. This helps IDEs provide accurate IntelliSense features while editing (_e.g._, code completion). |\n\n## Scope and roadmap\n\nThe library does not have a well-defined scope, but it focuses on motion planning algorithms and supporting software\ncomponents. If there is a feature that you want to see added, create a new thread in the\n[Discussions tab][discussions_tab].\n\n## Support\n\nNeed some help or want to chat about the library? Head to the repository's [Discussions tab][discussions_tab] to\nconnect with someone.\n\n## Contributing\n\nWant to help improve the library? Check out the [contribution guidelines][contributions_file] to get started.\n\n## License\n\nSee the [`LICENSE.md`][license_file] file for license information.\n\n[libwheel_angle]: angle/README.md\n[libwheel_geometry]: geometry/README.md\n[libwheel_metaprogramming]: metaprogramming/README.md\n[libwheel_motion_planning]: motion_planning/README.md\n[libwheel_strongly_typed_matrix]: strongly_typed_matrix/README.md\n[discussions_tab]: https://github.com/adamlm/libwheel/discussions\n[contributions_file]: CONTRIBUTING.md\n[license_file]: LICENSE.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamlm%2Flibwheel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamlm%2Flibwheel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamlm%2Flibwheel/lists"}