libdatadog 47.0.0.1.1-aarch64-linux → 49.0.0.1.1-aarch64-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +2 -1
  3. data/vendor/{libdatadog-47.0.0/aarch64-linux-musl → libdatadog-49.0.0/aarch64-linux}/LICENSE-3rdparty.csv +11 -0
  4. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/common.h +171 -0
  6. data/vendor/{libdatadog-47.0.0/aarch64-linux-musl → libdatadog-49.0.0/aarch64-linux}/include/datadog/data-pipeline.h +449 -0
  7. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/ffe.h +17 -0
  8. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/profiling.h +4 -5
  9. data/vendor/{libdatadog-47.0.0/aarch64-linux-musl → libdatadog-49.0.0/aarch64-linux}/include/datadog/shared-runtime.h +17 -0
  10. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  12. data/vendor/{libdatadog-47.0.0/aarch64-linux → libdatadog-49.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +11 -0
  13. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  14. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/common.h +171 -0
  15. data/vendor/{libdatadog-47.0.0/aarch64-linux → libdatadog-49.0.0/aarch64-linux-musl}/include/datadog/data-pipeline.h +449 -0
  16. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/ffe.h +17 -0
  17. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/profiling.h +4 -5
  18. data/vendor/{libdatadog-47.0.0/aarch64-linux → libdatadog-49.0.0/aarch64-linux-musl}/include/datadog/shared-runtime.h +17 -0
  19. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/lib/libdatadog_profiling.so +0 -0
  20. data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  21. metadata +37 -37
  22. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/LICENSE +0 -0
  23. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/NOTICE +0 -0
  24. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/blazesym.h +0 -0
  25. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/crashtracker.h +0 -0
  26. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/ddsketch.h +0 -0
  27. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/library-config.h +0 -0
  28. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/log.h +0 -0
  29. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/otel-thread-ctx.h +0 -0
  30. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/telemetry.h +0 -0
  31. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/LICENSE +0 -0
  32. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/NOTICE +0 -0
  33. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/blazesym.h +0 -0
  34. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/crashtracker.h +0 -0
  35. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/ddsketch.h +0 -0
  36. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/library-config.h +0 -0
  37. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/log.h +0 -0
  38. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/otel-thread-ctx.h +0 -0
  39. /data/vendor/{libdatadog-47.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/telemetry.h +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 40d243a932fe02da6fa98fac9d55bc3bcb293bf3c682e78e19041a73b0e596c8
4
- data.tar.gz: 8f792f2994696386e86a53f80a5e6ce3539704ca057118087a89727130d54538
3
+ metadata.gz: 3847245645f4c4e210129a65bff80c4bb4387db709c6417eb11d603cd0ff7e9b
4
+ data.tar.gz: d0c3599a583d0afd75822d95441540d49ad2cdc210737c870fa8c47ee26d1ed9
5
5
  SHA512:
6
- metadata.gz: 5ce048276dc3f16bc0cb5650fcb709644f4cc67b3af20b4d255c36c2a43f111a547763b810aa30a39e7bfdb1da8d57f6550c274e31d49e8f6527516441c85bae
7
- data.tar.gz: 57a2cb0d34e24e9491bfc6248936c780b8ca8806fa08cc808a201e61fb77cdd306178a73df46f2772781409f1ddb4cd5015410f602acb3a1c0bf34c8c485430e
6
+ metadata.gz: 6e7d361b1e4a8b9b1a42fd17fce11dc7953b9bc8457fba891e36ecd6b7996174ed54c4c3ffdd1c4eabb60e1afea642d6ae3759a23edd90528d9e239e356da42c
7
+ data.tar.gz: 2be137b1c828bf55628ce4df1f3f72ab82bc634f0afcf806267c22973bcb38bdf59fb6b02857f841a808c9d1fadd9ea8cb5e6ee061d8147ab0b4ce9f2d996328
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Libdatadog
4
4
  # Current libdatadog version
5
- LIB_VERSION = "47.0.0"
5
+ LIB_VERSION = "49.0.0"
6
6
 
7
7
  GEM_MAJOR_VERSION = "1"
8
8
  GEM_MINOR_VERSION = "1"
@@ -10,6 +10,7 @@ module Libdatadog
10
10
  private_constant :GEM_MAJOR_VERSION, :GEM_MINOR_VERSION, :GEM_PRERELEASE_VERSION
11
11
 
12
12
  # The gem version scheme is lib_version.gem_major.gem_minor[.prerelease].
13
+ # Gem revisions are scoped to LIB_VERSION; reset both to zero when it changes.
13
14
  # This allows a version constraint such as ~> 0.2.0.1.0 in the consumer (dd-trace-rb), in essence pinning libdatadog to
14
15
  # a specific version like = 0.2.0, but still allow a) introduction of a gem-level breaking change by bumping gem_major
15
16
  # and b) allow to push automatically picked up bugfixes by bumping gem_minor.
@@ -56,6 +56,7 @@ bolero-honggfuzz,https://github.com/camshaft/bolero,MIT,Cameron Bytheway <bythew
56
56
  bolero-kani,https://github.com/camshaft/bolero,MIT,Cameron Bytheway <bytheway.cameron@gmail.com>
57
57
  bolero-libfuzzer,https://github.com/camshaft/bolero,MIT,Cameron Bytheway <bytheway.cameron@gmail.com>
58
58
  borrow-or-share,https://github.com/yescallop/borrow-or-share,MIT-0,Scallop Ye <yescallop@gmail.com>
59
+ buffered-io,https://github.com/rmja/buffered-io,MIT OR Apache-2.0,Rasmus Melchior Jacobsen <rmja@laesoe.org>
59
60
  bumpalo,https://github.com/fitzgen/bumpalo,MIT OR Apache-2.0,Nick Fitzgerald <fitzgen@gmail.com>
60
61
  byteorder,https://github.com/BurntSushi/byteorder,Unlicense OR MIT,Andrew Gallant <jamslam@gmail.com>
61
62
  bytes,https://github.com/tokio-rs/bytes,MIT,"Carl Lerche <me@carllerche.com>, Sean McArthur <sean@seanmonstar.com>"
@@ -126,6 +127,10 @@ displaydoc,https://github.com/yaahc/displaydoc,MIT OR Apache-2.0,Jane Lusby <jlu
126
127
  dyn-clone,https://github.com/dtolnay/dyn-clone,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
127
128
  either,https://github.com/rayon-rs/either,MIT OR Apache-2.0,bluss
128
129
  elf,https://github.com/cole14/rust-elf,MIT OR Apache-2.0,Christopher Cole <chris.cole.09@gmail.com>
130
+ embedded-io,https://github.com/rust-embedded/embedded-hal,MIT OR Apache-2.0,The embedded-io Authors
131
+ embedded-io-async,https://github.com/rust-embedded/embedded-hal,MIT OR Apache-2.0,The embedded-io-async Authors
132
+ embedded-nal,https://github.com/rust-embedded-community/embedded-nal,MIT OR Apache-2.0,"Jonathan 'theJPster' Pallant <github@thejpster.org.uk>, Mathias Koch <mk@blackbird.online>, Diego Barrios Romero <eldruin@gmail.com>, Ryan Summers <ryan.summers@vertigo-designs.com>"
133
+ embedded-nal-async,https://github.com/rust-embedded-community/embedded-nal,MIT OR Apache-2.0,The embedded-nal-async Authors
129
134
  encoding_rs,https://github.com/hsivonen/encoding_rs,(Apache-2.0 OR MIT) AND BSD-3-Clause,Henri Sivonen <hsivonen@hsivonen.fi>
130
135
  enum-as-inner,https://github.com/bluejekyll/enum-as-inner,MIT OR Apache-2.0,Benjamin Fry <benjaminfry@me.com>
131
136
  equivalent,https://github.com/cuviper/equivalent,Apache-2.0 OR MIT,The equivalent Authors
@@ -167,11 +172,13 @@ gloo-timers,https://github.com/rustwasm/gloo/tree/master/crates/timers,MIT OR Ap
167
172
  h2,https://github.com/hyperium/h2,MIT,"Carl Lerche <me@carllerche.com>, Sean McArthur <sean@seanmonstar.com>"
168
173
  half,https://github.com/starkat99/half-rs,MIT OR Apache-2.0,Kathryn Long <squeeself@gmail.com>
169
174
  halfbrown,https://github.com/Licenser/halfbrown,Apache-2.0 OR MIT,Heinz N. Gies <heinz@licenser.net>
175
+ hash32,https://github.com/japaric/hash32,MIT OR Apache-2.0,Jorge Aparicio <jorge@japaric.io>
170
176
  hashbrown,https://github.com/rust-lang/hashbrown,MIT OR Apache-2.0,Amanieu d'Antras <amanieu@gmail.com>
171
177
  hashbrown,https://github.com/rust-lang/hashbrown,MIT OR Apache-2.0,The hashbrown Authors
172
178
  hdrhistogram,https://github.com/HdrHistogram/HdrHistogram_rust,MIT OR Apache-2.0,"Jon Gjengset <jon@thesquareplanet.com>, Marshall Pierce <marshall@mpierce.org>"
173
179
  headers,https://github.com/hyperium/headers,MIT,Sean McArthur <sean@seanmonstar.com>
174
180
  headers-core,https://github.com/hyperium/headers,MIT,Sean McArthur <sean@seanmonstar.com>
181
+ heapless,https://github.com/rust-embedded/heapless,MIT OR Apache-2.0,"Jorge Aparicio <jorge@japaric.io>, Per Lindgren <per.lindgren@ltu.se>, Emil Fresk <emil.fresk@gmail.com>"
175
182
  heck,https://github.com/withoutboats/heck,MIT OR Apache-2.0,The heck Authors
176
183
  hermit-abi,https://github.com/hermit-os/hermit-rs,MIT OR Apache-2.0,Stefan Lankes
177
184
  hex,https://github.com/KokaKiwi/rust-hex,MIT OR Apache-2.0,KokaKiwi <kokakiwi@kokakiwi.net>
@@ -252,8 +259,10 @@ moka,https://github.com/moka-rs/moka,(MIT OR Apache-2.0) AND Apache-2.0,The moka
252
259
  msvc-demangler,https://github.com/mstange/msvc-demangler-rust,MIT OR NCSA,"Markus Stange <mstange@themasta.com>, Jeff Muizelaar <jrmuizel@gmail.com>"
253
260
  multer,https://github.com/rwf2/multer,MIT,Rousan Ali <hello@rousan.io>
254
261
  multimap,https://github.com/havarnov/multimap,MIT OR Apache-2.0,Håvar Nøvik <havar.novik@gmail.com>
262
+ nb,https://github.com/rust-embedded/nb,MIT OR Apache-2.0,Jorge Aparicio <jorge@japaric.io>
255
263
  nix,https://github.com/nix-rust/nix,MIT,The nix-rust Project Developers
256
264
  nom,https://github.com/Geal/nom,MIT,contact@geoffroycouprie.com
265
+ nourl,https://github.com/rmja/nourl,MIT OR Apache-2.0,Rasmus Melchior Jacobsen <rmja@laesoe.org>
257
266
  ntapi,https://github.com/MSxDOS/ntapi,Apache-2.0 OR MIT,MSxDOS <melcodos@gmail.com>
258
267
  num-conv,https://github.com/jhpratt/num-conv,MIT OR Apache-2.0,Jacob Pratt <jacob@jhpratt.dev>
259
268
  num-derive,https://github.com/rust-num/num-derive,MIT OR Apache-2.0,The Rust Project Developers
@@ -345,6 +354,7 @@ regex-automata,https://github.com/rust-lang/regex/tree/master/regex-automata,MIT
345
354
  regex-lite,https://github.com/rust-lang/regex,MIT OR Apache-2.0,"The Rust Project Developers, Andrew Gallant <jamslam@gmail.com>"
346
355
  regex-syntax,https://github.com/rust-lang/regex/tree/master/regex-syntax,MIT OR Apache-2.0,"The Rust Project Developers, Andrew Gallant <jamslam@gmail.com>"
347
356
  reqwest,https://github.com/seanmonstar/reqwest,MIT OR Apache-2.0,Sean McArthur <sean@seanmonstar.com>
357
+ reqwless,https://github.com/drogue-iot/reqwless,Apache-2.0,The reqwless Authors
348
358
  resolv-conf,https://github.com/hickory-dns/resolv-conf,MIT OR Apache-2.0,The resolv-conf Authors
349
359
  ring,https://github.com/briansmith/ring,Apache-2.0 AND ISC,The ring Authors
350
360
  rmp,https://github.com/3Hren/msgpack-rust,MIT,Evgeny Safronov <division494@gmail.com>
@@ -377,6 +387,7 @@ security-framework,https://github.com/kornelski/rust-security-framework,MIT OR A
377
387
  security-framework-sys,https://github.com/kornelski/rust-security-framework,MIT OR Apache-2.0,"Steven Fackler <sfackler@gmail.com>, Kornel <kornel@geekhood.net>"
378
388
  semver,https://github.com/dtolnay/semver,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
379
389
  serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
390
+ serde-json-core,https://github.com/rust-embedded-community/serde-json-core,MIT OR Apache-2.0,"Jorge Aparicio <jorge@japaric.io>, Ryan Summers <ryan.summers@vertigo-designs.com>, Robert Jördens <rj@quartiq.de>, Mathias Koch <mk@factbird.com>"
380
391
  serde-transcode,https://github.com/sfackler/serde-transcode,MIT OR Apache-2.0,Steven Fackler <sfackler@palantir.com>
381
392
  serde_bytes,https://github.com/serde-rs/bytes,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
382
393
  serde_core,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
@@ -1700,6 +1700,25 @@ typedef enum ddog_TraceExporterErrorCode {
1700
1700
  DDOG_TRACE_EXPORTER_ERROR_CODE_PANIC,
1701
1701
  } ddog_TraceExporterErrorCode;
1702
1702
 
1703
+ /**
1704
+ * TraceExporterInputFormat represents the format of the input traces.
1705
+ * The input format can be either Proxy or V0.4, where V0.4 is the default.
1706
+ */
1707
+ typedef enum ddog_TraceExporterInputFormat {
1708
+ DDOG_TRACE_EXPORTER_INPUT_FORMAT_V04,
1709
+ DDOG_TRACE_EXPORTER_INPUT_FORMAT_V05,
1710
+ } ddog_TraceExporterInputFormat;
1711
+
1712
+ /**
1713
+ * TraceExporterOutputFormat represents the format of the output traces.
1714
+ * The output format can be either V0.4 or v0.5, where V0.4 is the default.
1715
+ */
1716
+ typedef enum ddog_TraceExporterOutputFormat {
1717
+ DDOG_TRACE_EXPORTER_OUTPUT_FORMAT_V04,
1718
+ DDOG_TRACE_EXPORTER_OUTPUT_FORMAT_V05,
1719
+ DDOG_TRACE_EXPORTER_OUTPUT_FORMAT_V1,
1720
+ } ddog_TraceExporterOutputFormat;
1721
+
1703
1722
  /**
1704
1723
  * Structure containing the agent response to a trace payload
1705
1724
  * MUST be freed with `ddog_trace_exporter_response_free`
@@ -1719,6 +1738,8 @@ typedef struct ddog_TraceExporterResponse ddog_TraceExporterResponse;
1719
1738
  */
1720
1739
  typedef struct ddog_ForkSafeRuntime ddog_ForkSafeRuntime;
1721
1740
 
1741
+ typedef struct ddog_TraceExporterBuilder_ForkSafeRuntime ddog_TraceExporterBuilder_ForkSafeRuntime;
1742
+
1722
1743
  /**
1723
1744
  * The TraceExporterConfig object will hold the configuration properties for the TraceExporter.
1724
1745
  * Once the configuration is passed to the TraceExporter constructor the config is no longer
@@ -1849,6 +1870,74 @@ typedef struct ddog_CardinalityLimitConfig {
1849
1870
  uintptr_t additional_tags_limit;
1850
1871
  } ddog_CardinalityLimitConfig;
1851
1872
 
1873
+ /**
1874
+ * FFI-compatible mirror of the Rust `TelemetryConfig`: the two fields consumed by
1875
+ * [`ddog_trace_exporter_builder_enable_telemetry`]. Session identifiers are configured
1876
+ * separately via `ddog_trace_exporter_builder_set_telemetry_instrumentation_sessions`.
1877
+ */
1878
+ typedef struct ddog_ExporterTelemetryConfig {
1879
+ /**
1880
+ * How often telemetry should be sent, in milliseconds.
1881
+ */
1882
+ uint64_t heartbeat;
1883
+ /**
1884
+ * Whether to enable debug mode for telemetry.
1885
+ * When enabled, sets the DD-Telemetry-Debug-Enabled header to true.
1886
+ * Defaults to false.
1887
+ */
1888
+ bool debug_enabled;
1889
+ } ddog_ExporterTelemetryConfig;
1890
+
1891
+ /**
1892
+ * A borrowed list of tag strings for builder setters that take a `Vec<String>`
1893
+ * (tracer tags, peer tags, metric tag keys).
1894
+ *
1895
+ * `ptr` may be null only when `len` is 0; a non-zero `len` with a null `ptr` is rejected.
1896
+ * An empty list clears the corresponding builder field.
1897
+ */
1898
+ typedef struct ddog_ExporterTagList {
1899
+ /**
1900
+ * Pointer to the first `ddog_CharSlice`.
1901
+ */
1902
+ const ddog_CharSlice *ptr;
1903
+ /**
1904
+ * Number of elements.
1905
+ */
1906
+ uintptr_t len;
1907
+ } ddog_ExporterTagList;
1908
+
1909
+ /**
1910
+ * A borrowed HTTP header name/value pair.
1911
+ */
1912
+ typedef struct ddog_ExporterHeader {
1913
+ /**
1914
+ * Header name.
1915
+ */
1916
+ ddog_CharSlice name;
1917
+ /**
1918
+ * Header value.
1919
+ */
1920
+ ddog_CharSlice value;
1921
+ } ddog_ExporterHeader;
1922
+
1923
+ /**
1924
+ * A borrowed list of [`ExporterHeader`] pairs for builder setters that take a
1925
+ * `Vec<(String, String)>` (OTLP headers).
1926
+ *
1927
+ * `ptr` may be null only when `len` is 0; a non-zero `len` with a null `ptr` is rejected.
1928
+ * An empty list clears the corresponding builder field.
1929
+ */
1930
+ typedef struct ddog_ExporterHeaderList {
1931
+ /**
1932
+ * Pointer to the first `ddog_ExporterHeader`.
1933
+ */
1934
+ const struct ddog_ExporterHeader *ptr;
1935
+ /**
1936
+ * Number of elements.
1937
+ */
1938
+ uintptr_t len;
1939
+ } ddog_ExporterHeaderList;
1940
+
1852
1941
  /**
1853
1942
  * FFI-safe bundle of scalar fields for creating a [`TracerSpan`].
1854
1943
  *
@@ -2390,6 +2479,58 @@ typedef struct ddog_ffe_ArrayMap_BorrowedStr {
2390
2479
  uintptr_t count;
2391
2480
  } ddog_ffe_ArrayMap_BorrowedStr;
2392
2481
 
2482
+ /**
2483
+ * Value of a feature attached to the selected split.
2484
+ */
2485
+ typedef enum ddog_ffe_FeatureValue_Tag {
2486
+ /**
2487
+ * The string is not NUL-terminated; see `BorrowedStr`.
2488
+ */
2489
+ DDOG_FFE_FEATURE_VALUE_STRING,
2490
+ DDOG_FFE_FEATURE_VALUE_FLOAT,
2491
+ DDOG_FFE_FEATURE_VALUE_BOOLEAN,
2492
+ } ddog_ffe_FeatureValue_Tag;
2493
+
2494
+ typedef struct ddog_ffe_FeatureValue {
2495
+ ddog_ffe_FeatureValue_Tag tag;
2496
+ union {
2497
+ struct {
2498
+ struct ddog_ffe_BorrowedStr string;
2499
+ };
2500
+ struct {
2501
+ double float_;
2502
+ };
2503
+ struct {
2504
+ bool boolean;
2505
+ };
2506
+ };
2507
+ } ddog_ffe_FeatureValue;
2508
+
2509
+ /**
2510
+ * A borrowed array of `BorrowedStr`. `elements` is NULL when `count` is `0`.
2511
+ */
2512
+ typedef struct ddog_ffe_BorrowedStrArray {
2513
+ const struct ddog_ffe_BorrowedStr *elements;
2514
+ uintptr_t count;
2515
+ } ddog_ffe_BorrowedStrArray;
2516
+
2517
+ /**
2518
+ * A feature attached to the selected split.
2519
+ */
2520
+ typedef struct ddog_ffe_Feature {
2521
+ struct ddog_ffe_BorrowedStr key;
2522
+ struct ddog_ffe_FeatureValue value;
2523
+ struct ddog_ffe_BorrowedStrArray destinations;
2524
+ } ddog_ffe_Feature;
2525
+
2526
+ /**
2527
+ * A borrowed array of `Feature`. `elements` is NULL when `count` is `0`.
2528
+ */
2529
+ typedef struct ddog_ffe_FeatureArray {
2530
+ const struct ddog_ffe_Feature *elements;
2531
+ uintptr_t count;
2532
+ } ddog_ffe_FeatureArray;
2533
+
2393
2534
  /**
2394
2535
  * A generic result type for when an operation may fail,
2395
2536
  * or may return `<T>` in case of success.
@@ -2475,12 +2616,37 @@ typedef enum ddog_SharedRuntimeErrorCode {
2475
2616
  * Shutdown timed out.
2476
2617
  */
2477
2618
  DDOG_SHARED_RUNTIME_ERROR_CODE_SHUTDOWN_TIMED_OUT,
2619
+ /**
2620
+ * The worker has already been stopped.
2621
+ */
2622
+ DDOG_SHARED_RUNTIME_ERROR_CODE_WORKER_STOPPED,
2623
+ /**
2624
+ * The worker was dropped before completing the flush.
2625
+ */
2626
+ DDOG_SHARED_RUNTIME_ERROR_CODE_FLUSH_ABORTED,
2627
+ /**
2628
+ * The flush did not complete before the timeout.
2629
+ */
2630
+ DDOG_SHARED_RUNTIME_ERROR_CODE_FLUSH_TIMED_OUT,
2478
2631
  /**
2479
2632
  * An unexpected panic occurred inside the FFI call.
2480
2633
  */
2481
2634
  DDOG_SHARED_RUNTIME_ERROR_CODE_PANIC,
2482
2635
  } ddog_SharedRuntimeErrorCode;
2483
2636
 
2637
+ /**
2638
+ * Handle to a worker registered on a [`SharedRuntime`].
2639
+ *
2640
+ * This handle can be used to stop the worker.
2641
+ *
2642
+ * # Warning
2643
+ * If every clone of this handle is dropped without calling [`WorkerHandle::stop`], the worker
2644
+ * remains registered on the [`SharedRuntime`] and can only be torn down by shutting the
2645
+ * runtime down. Workers are expected to detect that their input channel has been closed and
2646
+ * park themselves to avoid spinning, but they will not be freed until the runtime stops.
2647
+ */
2648
+ typedef struct ddog_WorkerHandle ddog_WorkerHandle;
2649
+
2484
2650
  /**
2485
2651
  * Error returned by ForkSafeRuntime FFI functions.
2486
2652
  */
@@ -2705,6 +2871,11 @@ typedef struct ddog_crasht_Config {
2705
2871
  * (not just the crashing thread) using ptrace-based remote unwinding.
2706
2872
  */
2707
2873
  bool collect_all_threads;
2874
+ /**
2875
+ * If true, the collector will read OTel thread-level context (trace_id, span_id, etc.) from
2876
+ * each thread's TLS and include them in the crash report under `experimental`.
2877
+ */
2878
+ bool collect_otel_thread_contexts;
2708
2879
  bool create_alt_stack;
2709
2880
  bool demangle_names;
2710
2881
  /**