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
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • SonarLint - Clean code begins in your IDE with SonarLint
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • 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).

  • 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

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support. Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • 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)

  • 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

  • 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.

  • 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.

  • spring-fu

    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.

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • 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.

  • 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.

  • 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.

  • spring-native

    Spring Native is now superseded by Spring Boot 3 official native support

    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.

  • 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.

  • 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.

  • 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.

  • 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. :)

  • multik

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

  • kotlin-jupyter

    Kotlin kernel for Jupyter/IPython

    Kotlin kernel for IPython/Jupyter

  • dataframe

    Structured data processing in Kotlin (by JetBrains)

    Kotlin DataFrame is a library for in-memory data manipulation

  • lets-plot-dsl

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

  • 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.

  • 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

  • krypto

    Pure Kotlin cryptography library for Multiplatform Kotlin 1.3

  • kotlin-multiplatform-libsodium

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

  • swift-evolution

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

  • KorGE

    KorGE Game Engine. Multiplatform Kotlin Game Engine & Korlibs

    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?

  • 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.

  • 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

  • xmlutil

    XML Serialization library for Kotlin

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

  • 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.

  • 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.

  • 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.

  • compose-jb

    Compose Multiplatform, 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.

  • 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.

  • ktor

    Framework for quickly creating connected applications in Kotlin with minimal effort

  • 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

  • koin

    Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform

    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.

  • PeopleInSpace

    Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Compose for Wear, 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.

  • Decompose

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

    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.)

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

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