Kotlin Team AMA #3: Ask Us Anything

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/Kotlin

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • OPS - Build and Run Open Source Unikernels
  • Scout APM - Less time debugging, more time building
  • GitHub repo KotlinDL

    High-level Deep Learning Framework written in Kotlin and inspired by Keras

    Regarding AI: currently, you implement neural networks for solving classification and regression tasks for tabular data, or in Computer Vision with Kotlin Deep Learning Library (KotlinDL).

  • GitHub repo kotlinx.coroutines

    Library support for Kotlin coroutines

    We believe that most of "useful operators" that you mention are very domain-specific and are better suited for domain-oriented extension libraries on top of Flow. We've specifically designed Flow to make writing your own operators trivial. However, if you do feel that some general-purpose operators are missing, then please give us feedback at https://github.com/kotlin/kotlinx.coroutines/issues

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • GitHub repo kotlinx.serialization

    Kotlin multiplatform / multi-format serialization

    The proguard rules provided kotlinx serialization are pretty strict and prevent obfuscation companion classes. Is there a work around for this . There is a outstanding issue ticket on this(https://github.com/Kotlin/kotlinx.serialization/issue/1129)

  • GitHub repo KEEP

    Kotlin Evolution and Enhancement Process

    We are actively looking a concurrency as an area where Kotlin, as a language, can continue improving developers' lives. What's the problem with concurrency? It is the problem of "shared mutable state" that bites developers. After experimenting with freezing objects in Kotlin/Native we've become disillusioned in attempts to solve this problem by some form of "conditional mutability". We feel that a better solution lies through immutability, which automatically makes concurrency way safer. Out current design thinking in this direction is laid out here: https://github.com/Kotlin/KEEP/blob/master/notes/value-classes.md

  • GitHub repo kotlinx-nodejs

    Kotlin external declarations for using the Node.js API from Kotlin code targeting JavaScript

    Honestly, we are mostly focused on generic and browser cases. However recently we have introduced a library with typed declarations for Node.js modules check it out: https://github.com/Kotlin/kotlinx-nodejs. We would happy to hear more about your cases and issues you are faced, please feel free to contact me and file issues at https://kotl.in/issue.

  • GitHub repo kotlinx.html

    Kotlin DSL for HTML

    Recently I wanted to try doing Kotlin Fullstack with https://htmx.org/ , I looked at several HTML Template Engines and came across kotlinx.html. I really wanted to use it to make my whole stack type safe, but the few wiki pages that you call "documentation" really had me struggling to use it. https://github.com/Kotlin/kotlinx.html/wiki Like I didn't even find a whole list of all tags you have. I really expected different from a offical Jetbrains Kotlin library, not to mention there is a complete lack of tutorials for this library, I switched to mustache because they have way better documentation.

  • GitHub repo spring-fu

    KoFu and JaFu configuration DSLs for Spring Boot

    There is already a very close collaboration between Kotlin and Spring teams. I think leveraging more multiplatform capabilities and more DSL à la KoFu from https://github.com/spring-projects-experimental/spring-fu could increase Koltin usage on server side long term.

  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

  • GitHub repo kotlin-wrappers

    Kotlin wrappers for popular JavaScript libraries

    We already have a battle-tested integration with react (it's used inside jetbrains.space) -- https://github.com/JetBrains/kotlin-wrappers And, take a look at docs and hands-on.

  • GitHub repo htmx

    </> htmx - high power tools for HTML

    Recently I wanted to try doing Kotlin Fullstack with https://htmx.org/ , I looked at several HTML Template Engines and came across kotlinx.html. I really wanted to use it to make my whole stack type safe, but the few wiki pages that you call "documentation" really had me struggling to use it. https://github.com/Kotlin/kotlinx.html/wiki Like I didn't even find a whole list of all tags you have. I really expected different from a offical Jetbrains Kotlin library, not to mention there is a complete lack of tutorials for this library, I switched to mustache because they have way better documentation.

  • GitHub repo rsocket

    RSocket Protocol Definition

    Even if that's not a Spring based implementation, we would like to help https://github.com/rsocket/rsocket-kotlin, which is a great Kotlin multiplatform implementation of the RSocket protocol (https://rsocket.io/, can be an alternative to GRPC in a lot of use cases), to mature.

  • GitHub repo spring-native

    Spring Native provides beta support for compiling Spring applications to native executables using GraalVM native-image compiler.

    Our next steps are : provide great Kotlin/JVM/Native (Native with Kotlin JVM via GraalVM native images) support via https://github.com/spring-projects-experimental/spring-native/, empowering multiplatform development (with Kotlin/JS frontend for example), translating Spring Boot documentation to Kotlin (via a contribution from Kotlin team), make sure that some APIs like WebTestClient currently broken with Kotlin due to some type inference bugs with recursive generic types become usable.

  • GitHub repo rsocket-kotlin

    RSocket Kotlin multi-platform implementation

    Even if that's not a Spring based implementation, we would like to help https://github.com/rsocket/rsocket-kotlin, which is a great Kotlin multiplatform implementation of the RSocket protocol (https://rsocket.io/, can be an alternative to GRPC in a lot of use cases), to mature.

  • GitHub repo ksp

    Kotlin Symbol Processing API

    Well, KSP is developed by Google, so you should ask them for more documentation, I think :) For compiler plugins -- yes, JetBrains should at some point invest some time and create at least the basic documentation for compiler plugin authors. But first of all, we need to create the public compiler API itself. We are going to do that after releasing the JS IR back-end.

  • GitHub repo kotlin-flow-extensions

    Extensions to the Kotlin Flow library.

    Why do you want to keep Flow such a small library? It could be an attractive alternative to RxJava or Reactor, but it misses many useful operators today. On the other hand it brings a lot more operatores than would be required as a foundation for other frameworks (likeKotlin Flow Extensions). From my point of view Flow stays in the middleground with no good reason.

  • GitHub repo kotlin-multiplatform-bignum

    A Kotlin multiplatform library for arbitrary precision arithmetics

    I've used this BigDecimal Kotlin implementation before and it seems to work fine, granted it would be nice if there was a alternative in the stdlib, but for now, that dependency works fine. :)

  • GitHub repo multik

    Multik (NumPy analogue) - Multidimensional array library for Kotlin.

  • GitHub repo kotlin-jupyter

    Kotlin kernel for Jupyter/IPython

    Kotlin kernel for IPython/Jupyter

  • GitHub repo dataframe

    Kotlin typesafe data wrangling (by JetBrains)

    Kotlin DataFrame is a library for in-memory data manipulation

  • GitHub repo lets-plot-dsl

    lets-plot-dsl - dsl for visualisation library lets-plot

  • GitHub repo kotlin-compiler-server

    Server for executing kotlin code

    The thing I can do (and did) now is to Kotlin Compiler Server. The real support (as I just read below) will be at least after FIR publishing.

  • GitHub repo Kotlin-Multiplatform-Libraries

    Kotlin Multiplatform Libraries. Welcome PR if you find or create new Kotlin Multiplatform Library.

    From https://github.com/AAkira/Kotlin-Multiplatform-Libraries#cipher: https://github.com/korlibs/krypto https://github.com/ionspin/kotlin-multiplatform-libsodium

  • GitHub repo krypto

    Pure Kotlin cryptography library for Multiplatform Kotlin 1.3

  • GitHub repo kotlin-multiplatform-libsodium

    A kotlin multiplatform wrapper for libsodium, using directly built libsodium for jvm and native, and libsodium.js for js targets.

  • GitHub repo swift-evolution

    This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.

  • GitHub repo KorGE

    KorGE Game Engine. Multiplatform Kotlin Game Engine

    Have you thought of Kotlin multiplatform for game development (primarily competing with game libraries like libGDX and Cocos2D, and maybe later game engines like Unity and Unreal)? Are you aware of KorGE?

  • GitHub repo okio

    A modern I/O library for Android, Java, and Kotlin Multiplatform.

    On JVM, there is plenty of existing solution already on for multiplatform uses I'd suggest checking amazing Okio library by Square, that seems to cover most of basic use-cases.

  • GitHub repo kotlinx-datetime

    KotlinX multiplatform date/time library

    But we do have such plans for our kotlinx-datetime library and expect to provide at least a partial solution during the course of the year

  • GitHub repo xmlutil

    XML Serialization library for Kotlin

    It now supports JSON, ProtoBuf and CBOR. XML is a community-supported format that is provided by xmlutil

  • GitHub repo kotlinx.atomicfu

    The idiomatic way to use atomic operations in Kotlin

    Other examples are atomicfu and power assert (developed and maintained externally!), and we expect this list to grow even further.

  • GitHub repo kotlin-power-assert

    Kotlin compiler plugin to enable diagrammed function calls in the Kotlin programming language

    Other examples are atomicfu and power assert (developed and maintained externally!), and we expect this list to grow even further.

  • GitHub repo jackson-module-kotlin

    Module that adds support for serialization/deserialization of Kotlin (http://kotlinlang.org) classes and data classes.

    Got you, thanks. I didn’t mean to sound offensive - a better wording would be that they don’t seem to prioritize this part, at least based on https://github.com/FasterXML/jackson-module-kotlin/issues/199, which has one abandoned branch from a 3rd party and a couple of comments from from maintainers.

  • GitHub repo compose-jb

    Jetpack Compose for Desktop and Web, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.

    We absolutely have a multiplatform story for Compose in mind – if you check our example projects, e.g. https://github.com/JetBrains/compose-jb/tree/master/examples/todoapp , you can explore how code can be shared between different multiplatform targets using Compose for Desktop.

  • GitHub repo autodsl

    Auto-generate Kotlin DSL

    Do you consider compiler-plugin assisted AutoDSL feature ? I noticed one work https://github.com/juanchosaravia/autodsl but it is deprecated after Kotlin 1.4 . It seems using reflection.

  • GitHub repo ktor

    Framework for quickly creating connected applications in Kotlin with minimal effort

  • GitHub repo Splitties

    A collection of hand-crafted extensions for your Kotlin projects.

    XML is not the only way to use Android Views. With Kotlin, you can get pretty compelling results: https://github.com/LouisCAD/Splitties/tree/main/modules/views-dsl#ide-preview

  • GitHub repo koin

    Koin - a pragmatic lightweight dependency injection framework for Kotlin

    For DI take a look at Koin. It's a pragmatic lightweight dependency injection framework for Kotlin developers with multiplatform support. PeopleInSpace sample project uses it.

  • GitHub repo PeopleInSpace

    Minimal Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Wear Compose, Compose for Desktop, Compose for Web and Kotlin/JS + React clients along with Ktor backend.

    For DI take a look at Koin. It's a pragmatic lightweight dependency injection framework for Kotlin developers with multiplatform support. PeopleInSpace sample project uses it.

  • GitHub repo Decompose

    Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.) (by arkivanov)

    For navigation take a look at Decompose. It provides a Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Android Views, Jetpack Compose, SwiftUI, JS React, etc.)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts