Community & Contribution
Project info
Multik is a JetBrains incubator project licensed under Apache 2.0.
GitHub: github.com/Kotlin/multik
Maven Central:
org.jetbrains.kotlinx:multik-coreStability: Alpha
Getting help
GitHub Issues
The primary place to ask questions, report bugs, and request features is GitHub Issues.
Before opening a new issue:
Search existing issues — your question may already be answered.
Check the FAQ for common problems and workarounds.
When reporting a bug, include:
Multik version and module (
multik-default,multik-kotlin, ormultik-openblas).Kotlin version and target platform (JVM, JS, Native, WASM, Android).
A minimal code sample that reproduces the problem.
The full error message or stack trace.
Kotlin Slack
Join the Kotlin Slack workspace (request an invite) and look for discussions in the #datascience channel.
Stack Overflow
Tag your questions with kotlin and multik for community visibility.
Contributing
Contributions are welcome — bug fixes, new features, documentation improvements, and tests.
Setting up the development environment
Fork the repository on GitHub and clone your fork.
To build all modules including native code, you also need gcc, g++, and gfortran 8+ (same version), and the
JAVA_HOMEenvironment variable set.
Ways to contribute
- Report bugs
Open an issue with a clear description and a minimal reproducer.
- Implement a missing API
The
Math,LinAlg, andStatisticsinterfaces define the operations that each engine must implement. You can add a new function by:Adding the signature to the interface in
multik-core.Implementing it in
multik-kotlin(pure Kotlin) and/ormultik-openblas(native).
When adding or modifying public API, follow the Kotlin library authors' guidelines. Key points: always specify explicit visibility and return types (explicit API mode is enabled), avoid data classes in public API, don't add arguments to existing functions (use overloads), avoid boolean parameters, don't expose mutable state, and use @RequiresOptIn for experimental APIs.
- Create a custom engine
Subclass
Engineand implement theMath,LinAlg, andStatisticsinterfaces. Register it at runtime withmk.addEngine()ormk.setEngine().- Improve documentation
Documentation lives in
docs/topics/(Writerside format). API doc samples are inmultik-core/src/commonTest/kotlin/samples/docs/and validated by the Korro plugin.- Add tests
Tests are always welcome. Place JVM tests under
src/jvmTest/, common tests undersrc/commonTest/. Run them with./gradlew :multik-core:jvmTest(or the corresponding target task).
Submitting a pull request
Create a branch from
develop.Keep commits focused — one logical change per commit.
Add or update tests for any new behavior.
Make sure
./gradlew :multik-core:jvmTestpasses before submitting.Open a pull request against the
developbranch with a clear description of the change.
Roadmap and open feature requests
The following features are frequently requested and tracked on GitHub: