back to home

DataDog / libdatadog

Datadog shared rust-based library. For now only used in other products (e.g. Ruby or PHP libraries).

66 stars
19 forks
83 issues
RustCShell

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing DataDog/libdatadog in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/DataDog/libdatadog)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

provides a shared library containing common code used in the implementation of Datadog's libraries, including Continuous Profilers. **NOTE**: If you're building a new Datadog library/profiler or want to contribute to Datadog's existing tools, you've come to the right place! Otherwise, this is possibly not the droid you were looking for. Development Contributing See . Building Build as usual with . Builder crate You can generate a release using the builder crate. This will trigger all the necessary steps to create the libraries, binaries, headers and package config files needed to use a pre-built libdatadog binary in a (non-rust) project. Here's one example of using the builder crate: Build dependencies • Rust 1.84.1 or newer with cargo. See the Cargo.toml for information about bumping this version. • 0.29 • and Running tests This project uses [cargo-nextest][nt] to run tests. Installing cargo-nextest The simplest way to install [cargo-nextest][nt] is to use like this. Dev Containers Dev Containers allow you to use a Docker container as a full-featured development environment with VS Code. Prerequisites • Install the Dev Containers Extension in VS Code. • Docker must be installed and running on your host machine. Available Containers We provide two Dev Container configurations: • **Ubuntu**: Full-featured development environment with all dependencies installed • **Alpine**: Lightweight alternative with minimal dependencies Steps • Open a local VS Code window on the cloned repository. • Open the command palette ( or on macOS) and select **"Dev Containers: Reopen in Container"**. • Choose either **Ubuntu** or **Alpine** configuration when prompted. • VS Code will build and connect to the selected container environment. The container includes all necessary dependencies for building and testing . Docker container A dockerfile is provided to run tests in a Ubuntu linux environment. This is particularly useful for running and debugging linux-only tests on macOS. To build the docker image, from the root directory of the libdatadog project run To start the docker container, you can run This will: • Start the container in privileged mode to allow the container to run docker-in-docker, which is necessary for some integration tests. • Mount the current directory (the root of the libdatadog workspace) into the container at . • Mount a named volume to cache the cargo dependencies at ~/.cargo. This is helpful to avoid re-downloading dependencies every time you start the container, but isn't absolutely necessary. The environment variable is set to in the container, so cargo will use the target directory in the mounted volume to avoid conflicts with the host's default target directory of . Skipping tracing integration tests Tracing integration tests require docker to be installed and running. If you don't have docker installed or you want to skip these tests, you can run: [nt]: https://nexte.st/