Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
a0e4bff
Add FFI bindings for datadog-ffe
sameerank Oct 24, 2025
96c3e15
Fix missing newlines at ends of files
sameerank Oct 24, 2025
37764b0
Fix Rust formatting issues in datadog-ffe-ffi
sameerank Oct 24, 2025
c927269
Remove unused NULL_POINTER_ERROR constant from error.rs
sameerank Oct 24, 2025
dfc60e3
Fix formatting in assignment.rs by removing trailing whitespace from …
sameerank Oct 24, 2025
5dfbd46
Update LICENSE-3rdparty.yml to include datadog-ffe-ffi
sameerank Oct 24, 2025
911cf1f
Add datadog-ffe-ffi Cargo.toml to Dockerfile.build
sameerank Oct 27, 2025
47e0a5c
Set datadog-ffe-ffi version to 0.1.0 to match pre-release status
sameerank Oct 27, 2025
168718a
Update Cargo.lock
sameerank Oct 27, 2025
43ec366
Refactor build script and cbindgen configuration
sameerank Oct 27, 2025
a3c6612
Update CODEOWNERS to include datadog-ffe-ffi and team
sameerank Oct 28, 2025
10298cb
Update datadog-ffe-ffi/Cargo.toml
sameerank Oct 28, 2025
c453cb9
refactor(ffe): simplify error handling (#1285)
dd-oleksii Oct 28, 2025
1e0586a
Replace single-attribute constructor with multi-attribute API
sameerank Oct 29, 2025
2fcf32b
Remove unnecessary whitespace in evaluation_context.rs
sameerank Oct 29, 2025
7b7af45
Fix documentation formatting in evaluation_context.rs
sameerank Oct 29, 2025
2d11e90
Fix Cargo.toml
sameerank Oct 29, 2025
7a7d500
Prevent malloc error in drop functions
sameerank Oct 29, 2025
006b709
Update drop functions to simplify error handling
sameerank Oct 29, 2025
2f1c2ff
Refactor EvaluationContext API
sameerank Oct 29, 2025
2d4e32d
Merge branch 'main' into sameerank/FFL-1284-Create-datadog-ffe-ffi-crate
sameerank Oct 29, 2025
8a462e1
[ffe] add pyo3 conversion methods
dd-oleksii Oct 30, 2025
b4f03b9
[ffe] Remove unused errors
dd-oleksii Oct 30, 2025
44f5f49
[ffe] step back and remove IntoPyObject types
dd-oleksii Oct 30, 2025
466bafa
Revert "test(ffe): run sdk tests individually (#1273)"
dd-oleksii Oct 30, 2025
572804b
[ffe] Expose EvaluationFailure
dd-oleksii Oct 30, 2025
750dcec
[ffe] remove support for JSON:API
dd-oleksii Oct 31, 2025
f8da08b
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii Oct 31, 2025
dad6a08
[ffe] fix clippy
dd-oleksii Oct 31, 2025
36fe6be
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii Nov 1, 2025
b2481f0
Update datadog-ffe-ffi/src/evaluation_context.rs
sameerank Nov 3, 2025
f49b07f
Lint fix
sameerank Nov 3, 2025
3ee6f4b
Replace Assignment with ResolutionDetails structure
sameerank Nov 4, 2025
61582eb
Replace AssignmentValue with C-compatible value representation
sameerank Nov 4, 2025
8314d12
Add error mapping for ResolutionDetails error handling
sameerank Nov 4, 2025
b3321aa
Lint fixes
sameerank Nov 4, 2025
95a04fe
Clippy fixes
sameerank Nov 4, 2025
6b94369
refactor(ffe): merge EvaluationError and EvalutionFailure into one type
dd-oleksii Nov 4, 2025
c0fae17
Merge remote-tracking branch 'origin/ffe-pyo3-methods' into HEAD
dd-oleksii Nov 4, 2025
b360449
feat: handle non-string attributes
dd-oleksii Nov 4, 2025
7afa96b
feat(ffe): adding accessors for ResolutionDetails
dd-oleksii Nov 4, 2025
bccc283
feat(ffe): preserve json raw value
dd-oleksii Nov 5, 2025
99e02e5
datadog-ffe-ffi: finish assignment getters
dd-oleksii Nov 5, 2025
f98114e
add missing license header
dd-oleksii Nov 5, 2025
56c362f
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii Nov 5, 2025
0be43f1
fix tests
dd-oleksii Nov 5, 2025
080057f
fix parsing RawValue through TryParse
dd-oleksii Nov 6, 2025
87523cb
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii Nov 6, 2025
b032372
feat: support multiple/number expected flag type
dd-oleksii Nov 6, 2025
40e1b99
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii Nov 7, 2025
e290eb7
merge main
dd-oleksii Nov 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ data-pipeline*/ @Datadog/libdatadog-apm
datadog-tracer-flare @Datadog/libdatadog-apm
ddsketch @Datadog/libdatadog-apm @Datadog/libdatadog-telemetry
datadog-ffe @Datadog/feature-flagging-and-experimentation-sdk
datadog-ffe-ffi @Datadog/feature-flagging-and-experimentation-sdk

# Most of the bin_tests are owned by the profiling team, but some are owned by the core team
bin_tests/ @Datadog/libdatadog-profiling
Expand Down
11 changes: 11 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ members = [
"datadog-crashtracker",
"datadog-crashtracker-ffi",
"datadog-ffe",
"datadog-ffe-ffi",
"datadog-ipc",
"datadog-ipc-macros",
"libdd-library-config",
Expand Down
6 changes: 3 additions & 3 deletions LICENSE-3rdparty.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
root_name: builder, build_common, tools, libdd-alloc, datadog-crashtracker, ddcommon, libdd-telemetry, libdd-ddsketch, datadog-crashtracker-ffi, ddcommon-ffi, datadog-ffe, datadog-ipc, datadog-ipc-macros, libdd-tinybytes, tarpc, tarpc-plugins, spawn_worker, cc_utils, libdd-library-config, libdd-library-config-ffi, datadog-live-debugger, datadog-live-debugger-ffi, datadog-profiling, libdd-profiling-protobuf, datadog-profiling-ffi, data-pipeline-ffi, data-pipeline, datadog-trace-stats, datadog-trace-utils, libdd-trace-normalization, libdd-trace-protobuf, libdd-dogstatsd-client, libdd-log, libdd-ddsketch-ffi, libdd-log-ffi, libdd-telemetry-ffi, symbolizer-ffi, datadog-profiling-replayer, datadog-remote-config, datadog-sidecar, datadog-sidecar-macros, datadog-sidecar-ffi, datadog-trace-obfuscation, datadog-tracer-flare, sidecar_mockgen, test_spawn_from_lib
root_name: builder, build_common, tools, libdd-alloc, datadog-crashtracker, ddcommon, libdd-telemetry, libdd-ddsketch, datadog-crashtracker-ffi, ddcommon-ffi, datadog-ffe, datadog-ffe-ffi, datadog-ipc, datadog-ipc-macros, libdd-tinybytes, tarpc, tarpc-plugins, spawn_worker, cc_utils, libdd-library-config, libdd-library-config-ffi, datadog-live-debugger, datadog-live-debugger-ffi, datadog-profiling, libdd-profiling-protobuf, datadog-profiling-ffi, data-pipeline-ffi, data-pipeline, datadog-trace-stats, datadog-trace-utils, libdd-trace-normalization, libdd-trace-protobuf, libdd-dogstatsd-client, libdd-log, libdd-ddsketch-ffi, libdd-log-ffi, libdd-telemetry-ffi, symbolizer-ffi, datadog-profiling-replayer, datadog-remote-config, datadog-sidecar, datadog-sidecar-macros, datadog-sidecar-ffi, datadog-trace-obfuscation, datadog-tracer-flare, sidecar_mockgen, test_spawn_from_lib
third_party_libraries:
- package_name: addr2line
package_version: 0.24.2
Expand Down Expand Up @@ -27693,9 +27693,9 @@ third_party_libraries:
- package_name: stringmetrics
package_version: 2.2.2
repository: https://github.com/pluots/stringmetrics
license: License specified in file ($CARGO_HOME/registry/src/github.com-25cdd57fae9f0462/stringmetrics-2.2.2/LICENSE)
license: License specified in file ($CARGO_HOME/registry/src/index.crates.io-1949cf8c6b5b557f/stringmetrics-2.2.2/LICENSE)
licenses:
- license: License specified in file ($CARGO_HOME/registry/src/github.com-25cdd57fae9f0462/stringmetrics-2.2.2/LICENSE)
- license: License specified in file ($CARGO_HOME/registry/src/index.crates.io-1949cf8c6b5b557f/stringmetrics-2.2.2/LICENSE)
text: |
Copyright 2022 Trevor Gross

Expand Down
28 changes: 28 additions & 0 deletions datadog-ffe-ffi/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
# SPDX-License-Identifier: Apache-2.0

[package]
name = "datadog-ffe-ffi"
edition.workspace = true
version = "0.1.0"
rust-version.workspace = true
license.workspace = true

[lib]
crate-type = ["lib", "staticlib", "cdylib"]
bench = false

[features]
default = ["cbindgen"]
cbindgen = ["build_common/cbindgen", "ddcommon-ffi/cbindgen"]

[build-dependencies]
build_common = { path = "../build-common" }

[dependencies]
anyhow = "1.0.93"
datadog-ffe = { path = "../datadog-ffe", version = "=0.1.0" }
ddcommon-ffi = { path = "../ddcommon-ffi", default-features = false }
function_name = "0.3.0"

[dev-dependencies]
11 changes: 11 additions & 0 deletions datadog-ffe-ffi/build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
// SPDX-License-Identifier: Apache-2.0
extern crate build_common;

use build_common::generate_and_configure_header;

fn main() {
println!("cargo:rerun-if-changed=src/*");
let header_name = "datadog_ffe.h";
generate_and_configure_header(header_name);
}
41 changes: 41 additions & 0 deletions datadog-ffe-ffi/cbindgen.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
# SPDX-License-Identifier: Apache-2.0

language = "C"
cpp_compat = true
tab_width = 2
header = """// Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
// SPDX-License-Identifier: Apache-2.0
"""
include_guard = "DDOG_FFE_H"
style = "tag"
usize_is_size_t = true
pragma_once = true

no_includes = true
sys_includes = ["stdbool.h", "stddef.h", "stdint.h"]
includes = ["common.h"]

[export]
include = ["datadog-ffe-ffi"]
prefix = "ddog_ffe_"
renaming_overrides_prefixing = true

[export.rename]
"VoidResult" = "ddog_VoidResult"
"Error" = "ddog_Error"
"Vec_u8" = "ddog_Vec_U8"

[export.mangle]
rename_types = "PascalCase"

[enum]
prefix_with_name = true
rename_variants = "ScreamingSnakeCase"

[fn]
must_use = "DDOG_CHECK_RETURN"

[parse]
parse_deps = true
include = ["ddcommon-ffi", "datadog-ffe"]
Loading
Loading