Skip to content

Repository files navigation

Clavis 🔑

A Treasury of Algorithms That Make Even Computers Laugh

Welcome to Clavis! Here, efficient algorithms and unnecessarily complex C++ code form an unstable relationship. If you find a bug, please call it a "feature." Big O notation is our only lover, computational complexity our best friend.

Requirements

ToolVersionInstall (macOS)
C++ compilerC++23 supportXcode Command Line Tools
CMake3.25+brew install cmake
Ninjaanybrew install ninja
GTestanybrew install googletest
LLVM17+brew install llvm

CI validates the project with GCC 13.

Quick Setup (macOS)

brew install cmake ninja googletest llvm

Build & Test

# Build
cmake --preset debug
cmake --build --preset debug
# Test
ctest --preset debug
# Test (verbose)
ctest --preset debug --verbose

Available Presets

PresetGeneratorUse Case
debugNinjaLocal development
releaseNinjaProduction build
ciNinjaGitHub Actions
qualityNinjaCode-quality tools

Code Quality

# Configure code-quality tools without requiring GTest
cmake --preset quality
# Format
cmake --build --preset format
# Format check
cmake --build --preset format-check
# Lint
cmake --build --preset lint

About

Collection of algorithms in C++

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages