Decision Engine
Sign Up Now →Sign Up Now

SDK generation

helixor-sdk-gen 0.1.0 generates two kinds of SDK from typed contracts: HTTP clients from OpenAPI, and in-process decision SDKs from pack manifests. The targets overlap, but they are not the same product surface.

Generator 0.1.0Five OpenAPI targetsFive embedded targets

Language capability matrix#

LanguageOpenAPI clientEmbedded decision SDKGenerated package
PythonSupportedSupportedPython package and typed models
JavaScript / TypeScriptSupported TypeScript compiles to JavaScriptNot supportednpm-compatible package
JavaSupportedSupportedMaven/JAR project
C#SupportedSupported.NET 8/NuGet project
RustSupportedSupportedCargo crate
CNoSupportedC11 source, header and static library build

What “supported” means

The generator emits the target and its contract suite builds and exercises the generated output. Registry publication is tracked per API release. A supported generator target is not a claim that a package is already public on PyPI, npm, Maven Central, NuGet or crates.io.

Generate OpenAPI clients#

One configuration can select all five OpenAPI targets. JavaScript consumes the compiled TypeScript package; there is no separate JavaScript emitter.

package_name: example-sdk
package_version: 0.1.0
languages: [python, typescript, java, csharp, rust]
base_url: https://api.example.test
helix-sdk-gen generate helix-sdk.yml openapi.yaml --out generated-sdk

The generator lowers the OpenAPI document into one language-neutral operation contract before emitting code. Unsupported target features fail generation with SDK_TARGET_UNSUPPORTED_CONTRACT; the generator does not silently weaken the contract.

Generate embedded decision SDKs#

Embedded targets are generated from a pack manifest. They expose typed state and decision results without an HTTP round trip.

helix-sdk-gen generate-embedded embedded-pack-manifest.json \
  --lang python --lang java --lang csharp --lang rust --lang c \
  --out generated-embedded

C#, Rust and C bind the producer C ABI and require a compatible native runtime 1.x library at version 1.1.0 or newer, a signed license and the original sealed pack. Generated bindings do not bundle that runtime, replace the sealed pack or fall back to a local evaluator. Java and Python have their own generated embedded paths; the 0.3.1 distribution status for those paths remains documented on their language pages.

Target details#

Release boundary#

Generated SDKs contain the public request, response and decision contracts needed by callers. They do not contain Helixor's generator implementation, private model weights, prompts, solver internals, ontology engine or private runtime source. Each release must still pass its public-surface, archive-layout, secret, internal-reference and private-source fingerprint gates before publication.