Skip to content

Latest commit

 

History

History
123 lines (93 loc) · 4.59 KB

File metadata and controls

123 lines (93 loc) · 4.59 KB

Core

CLP core is the low-level component that performs compression, decompression, and search.

Requirements

  • We have built and tested CLP on the OSes listed below.
    • If you have trouble building for another OS, file an issue, and we may be able to help.
  • A recent compiler that fully supports C++20 features such as
    • std::span
    • std::source_location
  • Task >= 3.40.0 and < 3.43.0
    • We constrain the version due to unresolved issues.

To build, we require some source dependencies, packages from package managers, and libraries built from source.

Set up

To initialize the project, run:

tools/scripts/deps-download/init.sh

Source Dependencies

To get all dependencies required by CLP core, run the deps:core task:

task deps:core

The task will download, build, and install (within the build directory) the following libraries:

Library Version/commit
abseil-cpp 20250512.0
ANTLR v4.13.2
Boost v1.87.0
Catch2 v3.8.0
date v3.0.1
fmt v10.2.1
json v3.11.3
log-surgeon f801a3f
liblzma v5.8.1
lz4 v1.10.0
mongo-cxx-driver r3.10.2
msgpack-cxx v7.0.0
simdjson v3.13.0
spdlog v1.14.1
SQLite3 v3.36.0
uftcpp v4.0.6
yaml-cpp v0.7.0
yscope-log-viewer 969ff35
ystdlib-cpp d80cf86
zlib v1.3.1
zstd v1.5.7

Environment

A handful of packages and libraries are required to build CLP. There are two options to use them:

  • Install them on your machine and build CLP natively
  • Build CLP within a prebuilt docker container that contains the libraries; However, this won't work if you need additional libraries that aren't already in the container.

Native Environment

See the relevant README for your OS:

Want to build natively on an OS not listed here? You can file a feature request.

Docker Environment

You can use these commands to start a container in which you can build and run CLP:

# Make sure to change /path/to/clp/components/core and /path/to/my/logs below
docker run --rm -it \
  --name 'clp-build-env' \
  -u$(id -u):$(id -g) \
  -v$(readlink -f /path/to/clp/components/core):/mnt/clp \
  -v$(readlink -f /path/to/my/logs):/mnt/logs \
  ghcr.io/y-scope/clp/clp-core-dependencies-x86-ubuntu-jammy:main \
  /bin/bash -l

cd /mnt/clp

Make sure to change /path/to/clp/components/core and /path/to/my/logs to the relevant paths on your machine.

Build

  • Configure the cmake project:

    mkdir build
    cd build
    cmake ../
  • Build:

    make -j

:::{toctree} :hidden:

centos-stream-9-deps-install macos-deps-install ubuntu-jammy-deps-install regex-utils :::