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.
| Feature | Key | Status |
|---|---|---|
| Python target | python | In progress |
| Dart target | dart | In progress |
| Kotlin Multiplatform target | kotlin_multiplatform | Initial JVM/Android actuals |
| TS async streams | typescript.async_streams | Functional |
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.