Experimental Features

Some BoltFFI features are behind an experimental flag. The API for these features may change between releases, so they require an explicit opt-in.

Java and C# bindings are now generally available and no longer require experimental opt-in.

FeatureKeyStatus
Python targetpythonIn progress
Dart targetdartIn progress
Kotlin Multiplatform targetkotlin_multiplatformInitial JVM/Android actuals
TS async streamstypescript.async_streamsFunctional

Enabling

CLI flag

Pass --experimental to include experimental targets during that command run:

boltffi generate all --experimental
boltffi pack all --experimental

Config file

Add the feature key to experimental in boltffi.toml:

experimental = ["kotlin_multiplatform", "typescript.async_streams"]

The CLI flag applies to a single command. The config array applies to every build.

Feature Details

Kotlin Multiplatform

Key: kotlin_multiplatform

Enables boltffi generate kmp and includes Kotlin Multiplatform output during boltffi generate all --experimental. The generated module contains commonMain declarations plus jvmMain and androidMain actuals that delegate to the existing Kotlin/JNI bindings.

This is an initial target slice. Kotlin/Native cinterop actuals for iOS/macOS are not generated yet.

TypeScript Async Streams

Key: typescript.async_streams

Enables AsyncIterable stream generation for TypeScript/WASM targets. Without this flag, stream methods are skipped during TypeScript codegen.

Graduating from Experimental

When a feature stabilizes, it moves out of the experimental list. The --experimental flag and config entry are no longer required. Existing code continues to work without changes.