The SDK is Rothalyx’s stable public surface, exported as a C ABI from core/sdk/include/rothalyx/sdk/api.h. It is intentionally C-shaped so it can be consumed from Python, Rust, Go, or other FFI targets without leaking internal C++ types. The header exports version constants: ROTHALYX_SDK_VERSION_MAJOR/MINOR/PATCH, ROTHALYX_SDK_ABI_VERSION, and ROTHALYX_SDK_PLUGIN_API_VERSION.
Functionally, the SDK can analyze a binary into a persisted project database, open a project, read the latest run overview, and enumerate persisted functions and AI insights. The analyze entry point is rothalyx_sdk_analyze_binary(binary_path, project_db_path, ai_options, error_buffer, error_buffer_size), where passing NULL for ai_options runs local heuristic analysis only. Inspection uses a handle-based sequence: open_project, get_latest_run, get_function_count, get_function_at, get_ai_insight_count, get_ai_insight_at, then close_project.
The lifetime contract is explicit and is the sharpest edge of the boundary: strings returned inside result structs are owned by the project handle and remain valid only until the next SDK call that refreshes the same cached collection, or until close_project. rothalyx_ai_options_t carries backend, api_key, model, base_url, organization, project, max_model_functions, and timeout_ms, with backends heuristic, openai, anthropic, gemini, openai_compatible, local_llm, and auto. Cross-language binding conformance and enforcement of the ABI-version discipline across releases are Additional validation required.
REGAAN R