node-app-api 5.22.0

Shared types and C ABI definitions for the Node-App host API v1
Documentation
# cbindgen configuration for the Node Host API v1 (T124)
#
# Generates `core/host-abi-v1/include/node-host-api-v1.h` from the FFI
# surface declared in `src/ffi.rs` and `src/context.rs`.
#
# The header is checked in to git so consumers (Go, C, C++, Zig SDKs)
# do not need cbindgen at install time. Regenerate by running
# `cargo build -p node-app-api`.

language = "C"
include_guard = "NODE_HOST_API_V1_H"
pragma_once = true
cpp_compat = true
documentation = true
documentation_style = "doxy"
no_includes = false
sys_includes = ["stdint.h", "stdbool.h", "stddef.h"]
includes = []
line_length = 100
tab_width = 4
style = "type"

# Header preamble — marks the API as v1-experimental per Q-Open-3 (clarify) and
# pins the ABI version constant downstream consumers compile against.
header = """
// Node Host API v1 (experimental — subject to change before v1.0)
//
// Generated from sdk/api/src/ffi.rs by cbindgen. DO NOT EDIT by hand.
//
// This header defines the C ABI used by native Node-App plugins to
// communicate with the host backend. Apps and SDKs in any language
// (C, C++, Go, Zig, Rust) link against this surface.
//
// ABI compatibility: Apps must declare API version 1 (NODE_APP_API_VERSION)
// in their NodeAppMetadata.api_version field. The host refuses to load apps
// whose api_version does not match.
//
// Stability: v1 surface is FROZEN for the duration of the v1 series. Breaking
// changes require bumping the ABI version and a parallel host-abi-v2 header.
"""

trailer = """
// End of Node Host API v1
"""

[parse]
parse_deps = false

[parse.expand]
crates = []

[export]
include = [
    "FfiResult",
    "NodeAppMetadata",
    "NodeAppVTable",
    "NodeAppContext",
    "NodeAppEntryFn",
]
prefix = ""

[export.rename]
"c_char" = "char"
"c_void" = "void"

[fn]
prefix = ""
postfix = ""
args = "auto"
rename_args = "None"

[struct]
derive_eq = false
derive_neq = false
derive_lt = false
derive_lte = false
derive_gt = false
derive_gte = false

[enum]
rename_variants = "None"
prefix_with_name = false

[const]
allow_constexpr = true

[macro_expansion]
bitflags = true