https://github.com/resq-software/vcpkg
ResQ C++ libraries for vcpkg
https://github.com/resq-software/vcpkg
algorithms cmake cpp17 data-structures drone-software robotics vcpkg
Last synced: 6 days ago
JSON representation
ResQ C++ libraries for vcpkg
- Host: GitHub
- URL: https://github.com/resq-software/vcpkg
- Owner: resq-software
- License: apache-2.0
- Created: 2026-03-27T08:38:26.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-10T05:46:24.000Z (30 days ago)
- Last Synced: 2026-05-10T06:46:16.102Z (30 days ago)
- Topics: algorithms, cmake, cpp17, data-structures, drone-software, robotics, vcpkg
- Language: C++
- Homepage:
- Size: 70.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Agents: AGENTS.md
Awesome Lists containing this project
README
# ResQ vcpkg Packages
[](https://github.com/resq-software/vcpkg/actions)
[](#)
[](#)
[](LICENSE)
> C++ vcpkg libraries for the ResQ autonomous drone platform.
## Packages
| Port | Description |
|------|-------------|
| `resq-common` | Shared DSA, geo utilities, result types, and string/array/file helpers |
## Installation
**Via CMake FetchContent** (recommended):
```cmake
include(FetchContent)
FetchContent_Declare(
resq-common
GIT_REPOSITORY https://github.com/resq-software/vcpkg
GIT_TAG resq-common@v0.1.0
)
FetchContent_MakeAvailable(resq-common)
target_link_libraries(your_target PRIVATE resq::common)
```
**Via vcpkg overlay:**
```bash
vcpkg install resq-common
```
**Direct include path:**
```cmake
target_include_directories(your_target PRIVATE path/to/resq-common/include)
```
## Modules
### DSA
Probabilistic and graph data structures optimized for drone swarm coordination.
**BloomFilter** -- Probabilistic set membership with configurable false-positive rate.
```cpp
#include
resq::BloomFilter filter(10000, 0.01); // 10k elements, 1% FP rate
filter.add("drone_001");
assert(filter.possibly_contains("drone_001")); // true
```
**CountMinSketch** -- Frequency estimation for streaming data.
```cpp
#include
```
**Graph** -- Adjacency-list graph with Dijkstra and A* pathfinding.
```cpp
#include
resq::Graph g;
g.add_edge("A", "B", 1.0);
g.add_edge("B", "C", 2.0);
auto result = g.dijkstra("A", "C");
```
**BoundedHeap** -- Fixed-capacity min/max heap for top-K selection.
```cpp
#include
```
**Trie** -- Prefix tree for string-based lookups.
```cpp
#include
```
### Result
Rust-inspired `Result` type for explicit error handling without exceptions.
```cpp
#include
resq::Result parse_port(const std::string& s) {
if (s.empty()) return resq::Result::Err(400, "Port cannot be empty");
int port = std::stoi(s);
return resq::Result::Ok(port);
}
auto result = parse_port("8080");
if (result.is_ok()) {
int port = result.unwrap();
}
```
### File Utils
Safe filesystem operations with `Result`-based error handling.
```cpp
#include
```
### String Utils
Text processing helpers (trim, split, join, case conversion).
```cpp
#include
```
### Array Utils
SIMD-optimized operations on sorted `uint32_t` arrays (intersection, union, difference).
```cpp
#include
```
### Geo
Geographic primitives for drone navigation using the WGS84 coordinate system. Includes distance calculations and coordinate validation.
```cpp
#include
```
### Additional Utilities
- **`resq/env_utils.hpp`** -- Environment variable access
- **`resq/common/time.hpp`** -- Time utilities
- **`resq/common/nfz.hpp`** -- No-fly zone domain helpers
- **`resq/resq_common.hpp`** -- Convenience header (includes everything)
## Building from source
```bash
cmake -B build -DRESQ_COMMON_BUILD_TESTS=ON packages/resq-common
cmake --build build --config Debug
```
## Testing
```bash
ctest --test-dir build -C Debug --output-on-failure
```
## License
[Apache-2.0](LICENSE)